0
我遇到了問題。當通過Linq To Sql更新表中的一行時,我想知道唯一已更改的字段。 假設我在一個頁面中有25個字段,但我只更新了3個字段,並且在更新時,我只需要獲得這3個字段,它是舊值+它被修改或新值。動態獲取修改後的值
IT能夠在Linq To Sql中實現嗎?
我在網上搜索的東西,並已經瞭解DB.GetChangeSet(),但它只是給了我修改的行。
我已檢查與相同的其他問題從here但我did'nt得到他們使用我也嘗試過的方式,但它給我的錯誤「序列不包含任何元素」
我這樣嘗試: : 其中函數參數中的TableClass ObjTbl是包含來自模型的新值的Object。
public int UpdateDetails(int Id, TableClass ObjTbl)
{
using (DataContext DB = new DataContext())
{
var Data = DB.TableClass.Where(m => m.PkId == Id).FirstOrDefault();
Data .FirstName = ObjTbl.FirstName;
Data .MiddleInitials = ObjTbl.MiddleInitials;
Data .FkClientID = ObjTbl.FkClientID;
Data .LastName = ObjTbl.LastName;
DB.SubmitChanges();
TableClass instance = DB.GetChangeSet().Updates.OfType<TableClass>().Where(m => m.PkId == Id).First();
DB.TableClass.GetModifiedMembers(instance);
}
}
使用具有明確定義目的的視圖模型。 –