示例#1
0
        public void CanGetIdWithCorrectCaseWithTransforms()
        {
            using (var store = NewDocumentStore())
            {
                store.Conventions.CustomizeJsonSerializer = serializer =>
                                                            serializer.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                store.Conventions.FindFullDocumentKeyFromNonStringIdentifier = (id, type, allowNull) => id.ToString();

                new Agency_Entity().Execute(store);
                new AgencyTransformer().Execute(store);

                var code = "code";

                using (var session = store.OpenSession())
                {
                    var agency = new AgencyDb();
                    agency.Id   = Guid.NewGuid();
                    agency.Name = "my-name";
                    agency.Code = code;
                    var country = new AgencyCountryDb();
                    country.AgencyId = agency.Id;
                    country.Country  = "The-Country";
                    agency.Countries = new AgencyCountryDb[] { country };

                    session.Store(agency);
                    session.SaveChanges();
                }


                using (var session = store.OpenSession())
                {
                    var query = session.Query <AgencyDb, Agency_Entity>()
                                .TransformWith <AgencyTransformer, Agency>()
                                .Customize(x => x.WaitForNonStaleResultsAsOfLastWrite());
                    var agency = Queryable.Where(query, x => x.Code == code)
                                 .SingleOrDefault();


                    Assert.NotNull(agency);
                    Assert.True(agency.Countries[0].Agency.Code == agency.Code);
                }
            }
        }
示例#2
0
        public void CanGetProperError()
        {
            using (var store = NewDocumentStore())
            {
                store.Conventions.CustomizeJsonSerializer = serializer =>
                                                            serializer.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                store.Conventions.FindFullDocumentKeyFromNonStringIdentifier = (id, type, allowNull) => id.ToString();

                new Agency_Entity().Execute(store);


                var code = "code";

                using (var session = store.OpenSession())
                {
                    var agency = new AgencyDb();
                    agency.Id   = Guid.NewGuid();
                    agency.Name = "my-name";
                    agency.Code = code;
                    var country = new AgencyCountryDb();
                    country.AgencyId = agency.Id;
                    country.Country  = "The-Country";
                    agency.Countries = new AgencyCountryDb[] { country };

                    session.Store(agency);
                    session.SaveChanges();
                }


                using (var session = store.OpenSession())
                {
                    var query = session.Query <AgencyDb, Agency_Entity>().Customize(x => x.WaitForNonStaleResultsAsOfLastWrite());
                    var ex    = Assert.Throws <JsonSerializationException>(() => query.Where(x => x.Code == code).As <Agency>()
                                                                           .SingleOrDefault());

                    Assert.Equal("Could not read value for property: Countries", ex.Message);
                    Assert.NotNull(ex.InnerException);
                }
            }
        }