在Linq To SQL中更新的最佳方法

Jam*_*mes 6 .net linq visual-studio-2008 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()是否更好?

Meh*_*ari 2

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