[c#]无法更新使用 Linq

标签: Linq SQLServer C#
发布时间: 2017/2/28 18:54:10
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
try
{
    ContentDB contentDB = context.ContentDBs.FirstOrDefault(i => i.KeyID == KeyID);

    contentDB = contentDBUpdated;

    ChangeSet cs = context.GetChangeSet();
    Console.Write("Total changes to ContractorDB: {0}", cs);

    context.SubmitChanges();  
}
catch (Exception ex)
{
}  

怎么在这里是此传递我所有新数据对象内部的称为 contentDBUpdated 它已设置的所有参数。然后将该对象设置为对象从上下文是 contentDB ,然后 .SubmitChanges()

它不断告诉我

插入︰ 0,删除︰ 0,更新︰ 0

我不明白为什么,因为当我看通过调试器在 contentDB 对象它并获取新值。

解决方法 1:

你不能集/更新像对象︰

contentDB = contentDBUpdated;

这将仅复制引用,所以现在 contentDB 持有相同的引用作为 contentDBUpdate ,和原来的上下文附加到 contentDB 是丢失。

您可以设置属性,比如︰

contentDB.Name = contentDBUpdate.Name;
contentDB.SomeOtherProperty = contentDBUpdate.SomeOtherProperty;

然后更新会的工作。

官方微信
官方QQ群
31647020