[英]Unable to exclude a property from the AutoMapper
我的 asp.net 控制台應用程序中有以下代碼:-
Contact contact = new Contact()
{
Salutation = fields[SalutationIndex],
FirstName = fields[FirstNameIndex],
LastName = fields[LastNameIndex],
Organization = fields[OrganizationIndex],
Title = fields[TitleIndex]};
var dbcontact = entities.Contacts.FirstOrDefault(a => a.Email.ToLower() == contact.Email.ToLower());
Mapper.CreateMap<Contact, Contact>().ForSourceMember(x => x.ID, opt => opt.Ignore());
dbcontact = Mapper.Map<Contact>(contact);
entities.Entry(dbcontact).State = EntityState.Modified;
現在我想將所有屬性從contact
復制到dbcontact
,但要排除 ID,因為在contact
內部,ID 的默認值 = 0
,而我希望ID
保持從數據庫中檢索到的ID
。 但上面的代碼將修改包括ID
在內的dbcontact
屬性,使其等於contact
內部的那些 .. 所以似乎試圖忽略ID
沒有奏效。 我正在使用自動映射器 3.3.0 + 控制台應用程序正在使用 asp.net 4.5 + 實體框架 5.0
我認為你使用了錯誤的方法。 嘗試這個:
Mapper.CreateMap<Contact, Contact>().ForMember(x => x.ID, opt => opt.Ignore());
Mapper.Map<Contact, Contact>(contact, dbcontact);
看一下這個方法的總結。
執行從源對象到現有目標對象的映射。
編輯:
用答案中的那些替換這 2 行(來自您的示例):
Mapper.CreateMap<Contact, Contact>().ForSourceMember(x => x.ID, opt => opt.Ignore());
dbcontact = Mapper.Map<Contact>(contact);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.