c# - 如何使用 LINQ to SQL 设置整个对象?

标签 c# linq

因此,如果想要使用接收到的具有相同 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?

编辑:解决方案

    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 该记录已存在于数据库中并且您正在更新它。

关于c# - 如何使用 LINQ to SQL 设置整个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407079/

相关文章:

c# - 使用插值 vs "+"运算符连接字符串的内存使用情况

c# - 删除节点及其子节点

mysql - 使用 linq 从 DataTable 获取 bool 值

c# - 使用 linq 查询 xmlnode

c# - 是否可以用 C# 模拟 ms-access 的功能?

c# - 在 C# 中,从字符串中解析出此值的最佳方法是什么?

c# - 我如何检测添加到 C# 4.0 中的通用列表?

c# - 在MVC 3中上传文件始终为null

c# - 如何在linq中使用sql函数

linq - 无法创建常量值 - 仅允许原始类型或枚举类型