我很确定一定已经有这样的问题,但我就是找不到。
我想通过 LINQ 从 SQL 检索记录并将其存储在变量中。 然后我想更新数据,但变量仍应包含旧值。 变量基本上应该"按值"存储记录。
对于多个记录,我可以使用.ToList(( 来检索数据并将其存储在内存中,但是对于单个记录执行此操作的最佳方法是什么?
例:
var record = dc.MyTable.Where(p => p.ID == 1).FirstOrDefault();
var orignalRecord = ??;
record.Name == "New Value";
dc.SubmitChanges();
//Now I would like orignalRecord.Name to still have "Old Name".
本机不支持此行为,但您有两种选择来自行实现它:
在对象类中定义
Clone
方法,如下所示(这种方式仅支持浅拷贝(:class MyTable { public string Name { get; set; } public MyTable Clone() { return (MyTable)MemberwiseClone(); } }
实现使用序列化程序(如
Newtonsoft
(序列化和反序列化对象的方法(此方式支持深层复制(