public a_multi_depth_supplied_mapping_matcher() { _updatedEntities = new List<IEntity>(); _deletedEntities = new List<IEntity>(); _mapperContext = new MapperContext( new MapperContainer() .Register<Person, PersonEntity>( (f, t, c) => { c.Map(f.Name, () => t.Name); c.MapAll(f.Addresses, () => t.Addresses, (fa, ta) => fa.Name == ta.Name); } ) .Register<Name, NameEntity>( (f, t, c) => { t.First = f.First; t.Last = f.Last; } ) .Register<Address, AddressEntity>( (f, t, c) => { t.Name = f.Name; } ), new MapperContext.Parameters { Deleter = o => _deletedEntities.Add((IEntity) o), Updater = o => { var e = o as IEntity; if (e != null) _updatedEntities.Add(e); } } ); _from = new Person { Name = new Name {First = "Person"}, Addresses = new[] { new Address {Name = "Keep"}, new Address {Name = "New"} } }; _to = new PersonEntity { Name = new NameEntity {First = "Overwite"}, Addresses = new[] { new AddressEntity {Name = "Keep"}, new AddressEntity {Name = "Delete"} } }; _mapperContext.Map(_from, () => _to); }
public when_using_ef() { var mapperContainer = new MapperContainer() .Register<Person, PersonEntity>( (f, t, c) => { c.Map(f.Name, () => t.Name); c.MapAll(f.Addresses, () => t.Addresses); }) .Register<Name, NameEntity>( (f, t, c) => { t.First = f.First; t.Last = f.Last; } ) .Register<Address, AddressEntity>( (f, t, c) => { t.Name = f.Name; } ); Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DataContext>()); _dataContext = new DataContext(mapperContainer); _from = new Person { Name = new Name {First = "Person"}, Addresses = new[] { new Address {Name = "Keep"}, new Address {Name = "New"} } }; _to = _dataContext.Create<PersonEntity>(); _to.Name = new NameEntity {First = "Overwite"}; _to.Addresses = new[] { new AddressEntity {Name = "Keep"}, new AddressEntity {Name = "Delete"} }; _dataContext.SaveChanges(); var personId = _to.Id; _dataContext.Map(_from, () => _to); _dataContext.SaveChanges(); _dataContext = new DataContext(mapperContainer); _to = _dataContext .People.Include(p => p.Addresses) .Single(p => p.Id == personId); }
void maps_correctly() { var from = new Person { Email = "*****@*****.**" }; var to = new PersonEntity(); _mapperContext.Map(from, () => to); Assert.Equal(from.Email, to.Email); }
public a_multi_depth_supplied_mapping_no_matcher() { new List<IEntity>(); new List<IEntity>(); _mapperContext = new MapperContext( new MapperContainer() .Register<Person, PersonEntity>( (f, t, c) => { c.Map(f.Name, () => t.Name); c.MapAll(f.Addresses, () => t.Addresses); }) .Register<Name, NameEntity>( (f, t, c) => { t.First = f.First; t.Last = f.Last; } ) .Register<Address, AddressEntity>( (f, t, c) => { t.Name = f.Name; } ) ); _from = new Person { Name = new Name {First = "Person"}, Addresses = new[] { new Address {Name = "Address"} } }; _to = new PersonEntity { Name = new NameEntity {First = "Overwite"}, Addresses = new[] { new AddressEntity {Name = "Overwite"}, new AddressEntity {Name = "Overwite"} } }; _mapperContext.Map(_from, () => _to); }