将集合更新为db

时间:2009-02-12 02:37:37

标签: c# sql-server database nhibernate

这可能有点天真,但我只是想检查一下这样做是否正确。 我从UI接收了一组对象。 然后,我希望根据数据库中的记录检查这些对象。

这就是我正在做的创建更新和删除收到的对象。

  1. 循环接收对象 - 如果 (id == 0)创建新记录。
  2. 从db中检索现有记录;
  3. 循环现有记录 - 其中 (现有记录ID ==收到 对象id)更新记录。
  4. 如果 记录存在于现有的 记录但不在收到的记录中 对象 - 删除。
  5. 这似乎是最合乎逻辑的方法。我正在使用NHibernate,并且有点想知道是否还有其他方式我应该研究。 任何帮助非常感谢。

2 个答案:

答案 0 :(得分:1)

我的回答是值得的;我说你的逻辑是坚实的。

答案 1 :(得分:0)

如果您确实使用SQL Server 2008(或者可以选择使用它),那么会有一个新的“MERGE”语句基本上完成所有这些。

在这种情况下,您可以将所有数据写入临时表(在内存或磁盘上),然后使用单个MERGE语句更新数据并将其插入目标表。

以下是SQL Server 2008 MERGE上的一些信息: