当使用Linq到Sql并更新类似交叉引用表的内容时,它们可能已经是表中只需要保留在那里的记录,那些将要更改的记录和可以删除的记录。处理这个问题的最佳做法是什么?我想删除所有并重新创建。那不好吗?
我应该删除参考记录并重新填充所有参考记录。自然地删除不再需要的东西并创造所需的东西。
或
我是否应该尝试执行某种类型的检查并删除旧的内容
或
什么是更好的方法?
答案 0 :(得分:1)
在这种情况下,MERGE语句(StackOverFlow Merge Example)可能效果最佳。它允许您自行决定同时操作多行。
答案 1 :(得分:1)
Linq to SQL并不是最适合这种情况的工具。
基本上你必须自己编写更新/插入/删除。您可以使用exists()any()等来创建集合,但生成的SQL将是所有单独的插入,更新。
毕竟是查询语言。
在你的情况下,我会通过存储过程进行合并并调用它。