如何使用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();
}

如何使用LINQ to SQL设置整个对象

您尝试过newContext.YourEntity.Attach(YourAlreadyPopulatedObject)

在这篇文章中,您只需告诉Linqtosql记录已经存在于数据库中,并且您正在更新它。