[英]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.