簡體   English   中英

使用LINQ to SQL更新外鍵相關記錄

[英]Updating Foreign Key dependent record using LINQ to SQL

我正在處理包含大量數據的50多個表的應用程序。

假設我有兩個表:

Parent { pID int (PK), pName varchar(30) }

Child { pID int (FK), cName varchar(30) }

這是我的查詢:

using(MyDBContext ctx = new MyDBContext())
{
    Child ch = ctx.Childs.Where( c => c.pID == 1).FirstOrDefault();
    ch.cName = "ABCDEF";
    ctx.SubmitChanges();   //  <--- Executes but nothing changes...
}

我嘗試了多個現有值,但更新子記錄時ctx.SubmitChanges()不起作用。 任何解決方法?

該表沒有主鍵,因此無法更新。 如果您的表(子級)上沒有主鍵,則SubmitChanges將不起作用。 像這樣在子表上設置主鍵

Child { ID int (PK), pID int (FK), cName varchar(30) }

也許一切都會好的

我自己找到了解決方案。 我創建了一個SQL過程來更新記錄。 這是我的做法:

create procedure UpdateChildName
(
    @pID int,
    @name varchar(30)
)
AS
BEGIN
    update Child set cName = @name where pID = @pID;
END;

Linq to SQL部分:

using(MyDBContext ctx = new MyDBContext())
{
    ctx.UpdateChildName(1, "ABCDE");
    ctx.SubmitChanges();         //   <--- Now working great.
};

現在,我對FK或PK的依賴沒有任何問題... :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM