.net - 在 Linq To SQL 中更新的最佳方式

标签 .net visual-studio-2008 linq linq-to-sql

我有几个实体类,用于解析固定宽度文本文件以及利用 Linq to SQL。我使用这些类来解析所述文本文件中的数据,并与数据库中的数据进行比较。

其中一个实体有很多属性,我不想浪费时间在 Linq 结果对象上设置每个单独的属性。

有没有办法告诉 Linq“这是我的对象,用它来更新记录”?这是我正在处理的代码:

if (partialContent.MonthlyAddChange == "A")
   {
       bookContentTable.InsertOnSubmit(partialContent);
   }
   else if (partialContent.MonthlyAddChange == "C")
   {
       var query = from bookContent in bookContentTable
                   where bookContent.EAN == partialContent.EAN
                   select bookContent;

       if (query != null)
       {
           // Do something with query.First()
       }
   }
}

在这种情况下,删除记录并执行 InsertOnSubmit() 是否更好?

最佳答案

我认为编辑记录的概念与删除和插入新记录的概念不同。基本上,我认为 ORM 应该抽象出主键生成和其他相关的东西。通过删除和插入,您可能会删除记录的完整性(可能会发出新的主键,使引用的实体无效等等......)。我建议只要您所采取的操作概念上是更新,就更新记录。

关于.net - 在 Linq To SQL 中更新的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667957/

相关文章:

c# - 如何将数据绑定(bind)到 DataGrid 中的 ComboBox?

.net - .Take() 还是不.Take(),这是个问题

c# - IEnumerable<T> 的最微优化和优雅的 "Insert in order"算法是什么?

c# - 如何在 C# 应用程序中使用 C++/CLI

Visual Studio 中的 Git - 添加现有项目?

c++ - 在 C++ 中查询运行时多态性

c# - 使用字典的 Linq 奇怪行为

c# - WinForm 用户界面验证

.net - WebOrb.net/替代品

c++ - OOLua链接错误