好了一切,我在做明智的代碼是正確的我已經把表上的關係,錯了!
問題
我有任務消息的一對一的關係。當插入新項目時,我得到一個外鍵違規。
詳情:
DB結構
Task
ID (Primary Key, Guid, Default = NEWID())
MessageID (Unique Index with foreign key pointing to Message.ID)
Message
ID (Primary Key, Guid, Default = NEWID())
爲每個表的主鍵dbml的設置具有自動生成值設置爲true
和自動同步設置爲OnInsert
我有以下代碼插入新對象
var objMessage = new Data.Message()
{
Body = "",
Subject = ""
};
Context.Messages.InsertOnSubmit(objMessage);
var objTask = new Data.Task()
{
Message = objMessage
};
Context.Tasks.InsertOnSubmit(objTask);
Context.SubmitChanges();
這引發了違反外鍵約束的SQL錯誤。
SQL分析顯示linq to sql在消息之前插入任務,因爲它需要消息中的id,所以當然這會導致外鍵違例。
我在哪裏錯了?
是,這是原始的方式我做到了,他們的方式我希望它的工作。我正在標記你的問題是正確的,因爲它是:)我的問題是編輯中的數據庫像我的編輯說,我已經把關係錯了。 – Dreamwalker 2013-02-28 13:43:57