如何管理插入C#的并发性?

时间:2008-10-14 18:03:05

标签: c# concurrency

许多乐观并发示例通过使用数据库时间戳或标志来引用更新。

但是,我想处理INSERTS的乐观并发

这里说明一个虚假的场景:

多个用户可以同时插入日记帐分录,但每个日期只允许一个日记帐分录。

由于多个用户可以创建日记帐分录,因此没有任何并发​​控制,我最终可能会在同一天创建多个日记帐分录。

如何在不使用数据库的情况下防止在应用程序层发生这种情况(即数据库唯一键约束)

2 个答案:

答案 0 :(得分:4)

您是否定义了显式的唯一键约束,这正是您所要求的。

您可以在SQL代码中编写IF块,以检查是否存在指定日期的日记帐分录。

但明确的唯一键约束将提供更好的性能。

答案 1 :(得分:0)

您可以编写一个'on insert'触发器来检查表的内容,如果不符合您的条件,则丢弃插入。这适用于大多数RDBMS。