2011-05-17 69 views
1

我有2個表。例如:其中一個是存儲用戶,另一個存儲訂單。包含UserId作爲外鍵的訂單表。我正在使用Linq 2 Sql進行數據訪問操作。如果用戶已經存在於數據庫中,我想插入一個訂單而不插入用戶行。Linq 2 Sql插入無關係

我該怎麼做?

由於提前,

編輯:這是我有問題的代碼:

try 
{ 
    context.SocialEntities.InsertOnSubmit(entity); 
    context.SubmitChanges(); 
} 
catch (Exception ex) 
{ 
    if (ex.Message.Contains("UserUniqueness")) 
    {      
     User user = context.Users.Where(u => u.SourceUserID == entity.User.SourceUserID).FirstOrDefault(); 
     if (user != null) 
     { 
      user.SocialEntities.Add(entity); 
      context.SubmitChanges(); 
     } 
    } 
} 

UserUniqueness在用戶表中定義一個名爲SocialSourceId列唯一鍵約束。它不是主鍵。

回答

2

將新訂單添加到現有用戶的Orders集合中。

更新:
我建議你在嘗試插入之前先檢查用戶。我想,您嘗試添加的用戶仍然在您的上下文中,並在您下次撥打SubmitChanges時再次提交。

+0

它仍然說:違反UNIQUE KEY約束'UserUniqueness'。不能在對象'dbo.User'中插入重複鍵。用戶表具有唯一的密鑰約束 – anilca 2011-05-17 11:11:35

+1

用戶在做什麼?請編輯您的問題並提供一些代碼。 – 2011-05-17 11:16:15

+0

我編輯了我的問題。感謝您的關注 – anilca 2011-05-17 11:24:04