2012-09-28 110 views
0

我們有以下ADDUSER方法使用EF增加了一個新的記錄到數據庫:與相關對象的實體框架添加記錄

public User AddUser(User user) 
    { 
     using (var context = DataObjectFactory.CreateContext()) 
     { 
      var userEntity = Mapper.Map(user); 

      context.AddObject("UserEntities", userEntity); 

      context.SaveChanges(); 

      return Mapper.Map(userEntity); 
     } 
    } 

我們的用戶類型是這樣的:

public class User 
{ 
    public string FirstName { get; set; } 

    public string LastName { get; set; } 

    public Customer Customer { get; set; }  
} 

我們有一個Customer表和一個User表,在User表中我們有customerid作爲外鍵。

在USER表中我們有Firstname,Lastname和CustomerId字段,我們從用戶獲得名字,姓氏和customerid(客戶下拉列表)詳細信息,使用customerid創建Customer對象,我們從用戶處獲得並傳遞所有這些對AddUser方法,但會發生什麼是用戶被插入到數據庫中,並且新的客戶被插入到客戶的表中(有一個新的customerid),有沒有什麼辦法可以阻止它?

感謝

回答

2

您需要將客戶的EntityState設置爲Unchanged

喜歡的東西

context.Entry<Customer>(customer).State = EntityState.Unchanged; 

context.ObjectStateManager.ChangeObjectState(userEntity.Customer, EntityState.Unchanged); 

(取決於什麼樣的環境下,你正在使用的)

http://msdn.microsoft.com/en-us/data/jj592676.aspx

相關問題