如何使用LINQ to SQL设置整个对象
本文关键字:对象 设置 SQL 何使用 LINQ to | 更新日期: 2023-09-27 18:28:44
因此,如果要使用接收到的具有相同PK的对象中的值来更新数据库中的一行,我们将如何做到这一点。之所以需要这样做,是因为对象非常广泛,如果更新数据库,我会创建另一个必须更改字段名的地方。所以我的问题是,如何将对象分配给使用LINQ从数据库检索到的对象?我会展示我在说什么来澄清。
//Foo Object Received up here, called RecFoo
using (var newContext = new FooDataContext())
{
var obj = newContext.T_Foo.Single(x=>x.Id == RecFoo.id);
//Set obj = recFoo (Directly)
newContext.SubmitChanges();
}
我知道我们可以设置每个单独的属性(obj.Name=RecFoo.Name…),但有没有任何方法可以使用PK id获取接收到的对象,并为其分配RecFoo内部的所有值?
EDIT:解决方案
using (var newContext = new FooDataContext())
{
//var obj = newContext.T_Foo.Single(x=>x.Id == RecFoo.id);
//Set obj = recFoo (Directly)
newContext.T_Foo.Attach(recFoo);
newContext.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, recFoo);
newContext.SubmitChanges();
}
您尝试过newContext.YourEntity.Attach(YourAlreadyPopulatedObject)
吗
在这篇文章中,您只需告诉Linqtosql记录已经存在于数据库中,并且您正在更新它。