我想在Linq做一个更新.
public myFunc(MyItem newItem)
{
using(var db = new myDataContext())
{
var item = (from o in db.myTable where o.id == myId select o).First();
item = newItem;
db.SubmitAllChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
这不会更新对象,我猜item = newItem更改项目以引用另一个.如果我更改了各个字段(item.Name = newItem.Name等),则会反映出更改,但我不想将MyItem类的内容分散到多个位置以降低可维护性.有没有办法在逐个字段的基础上制作item = newItem副本?
MyItem也与另一个表有关系,我想将newItem中的下级项更新为item.(FWIW,没有添加或删除,只是更新.)是否有标准化的流程来执行此操作?
谢谢你的帮助.
好吧,MyItem
应该是一个部分类 - 所以你可以添加一个CopyPropertiesFrom
方法MyItem
,然后写
item.CopyPropertiesFrom(newItem);
Run Code Online (Sandbox Code Playgroud)
而不是你当前的任务.
顺便说一下,您可能需要考虑使用它而不是当前查询:
var item = db.myTable.First(o => o.id == myId);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,只是使事情比查询表达式更简单:)
归档时间: |
|
查看次数: |
193 次 |
最近记录: |