0

插入我有這樣的對象:避免不必要的插入子類時與實體框架

public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public Address Address { get; set; } 
} 

public class Address 
{ 
    public string Street { get; set; } 
    public Locality Locality { get; set; } 
} 

public class Locality 
{ 
    public string City { get; set; } 
    public string ZipCode { get; set; } 
} 

在實體框架模型,我有這個PERSON, ADDRESS, LOCALITY

我這樣做:

Mapper.CreateMap<Person, PERSON>(); 
Mapper.CreateMap<Address, ADDRESS>(); 
    .ForMember(x => x.Locality, opt => opt.Ignore()) 

當我嘗試在數據庫中插入新的Person時,我在Profiler(Entity Framework Profiler)中看到了Locality表上的一個插入。我只想插入一個用戶就是它。

有什麼想法?

+0

您能描述User類/表,還是person = user? – Maarten 2012-08-09 08:35:19

+0

抱歉錯字(更正)。謝謝, – 2012-08-09 08:37:21

+0

映射後,你的Entity Framework數據類的確切內容是什麼? – 2012-08-09 08:51:29

回答

0

您需要將Locality上的State設置爲新的PersonEntityState.Unchanged

context.ObjectStateManager 
    .ChangeObjectState 
    (newPerson.Locality, System.Data.EntityState.Unchanged);