Tag: #autheatpper

AutoMapper – 为什么要覆盖整个对象?

我不明白为什么它会覆盖我的整个对象。 原因是我从db获取了我的User对象,我想从DTO分配新值。 它不是仅仅添加这些新值,而是创建具有新值但前面所有值都设置为null新对象。 我怎样才能确保在这种情况下他会“升级”我的对象,而不是创建新对象? 脚本 /users/{id} – PUT // User has id, username, fullname // UserPut has fullname public HttpResponseMessage Put(int id, UserPut userPut) { var user = _db.Users.SingleOrDefault(x => x.Id == id); // filled with properties Mapper.CreateMap(); user = Mapper.Map(userPut); // now it has only “fullname”, everything else set to null // I can’t […]

Automapper – inheritance映射器不使用类型转换器

不能一起使用Mapping Inheritance和TypeConverter。 我有这个代码: /* BaseClassTypeConverter.cs */ public class BaseClassTypeConverter : ITypeConverter { public BaseClass Convert(ResolutionContext context) { if (context == null || context.IsSourceValueNull) return null; var src = (SourceClass)context.SourceValue; return new BaseClass() { CommonAttr = src.SourceAttr }; } } /* AutoMapperConfig.cs */ public static class AutoMapperConfig { public static void RegisterMappings() { AutoMapper.Mapper.Initialize(config => { […]

使用AutoMapper将DataRow转换为Object

我可以成功地从IDataReader映射到对象列表,但是当我想要一个DataRow它似乎没有按预期工作。 我错过了一些简单的东西吗? [TestFixture] public class AutomapperTest { [Test] public void TestMethod1() { DataTable dt = new DataTable(“contact”); dt.Columns.Add(“FirstName”); dt.Columns.Add(“LastName”); dt.Columns.Add(“Line1”); dt.Columns.Add(“Line2”); dt.Columns.Add(“Line3”); dt.Columns.Add(“Suburb”); dt.Columns.Add(“State”); dt.Columns.Add(“Postcode”); DataRow row = dt.NewRow(); row.ItemArray = new [] { “Little”, “Johnny”, “1 Random Place”, “”, “”, “Windsor”, “Qld”, “4030” }; var dest = Mapper.DynamicMap(row); Assert.AreEqual(row[“FirstName”], “Little”); Assert.IsNotNull(dest); Assert.AreEqual(dest.FirstName, “Little”); } […]