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);
}
}
使用具有明确定义目的的视图模型。 –