使用EF在触发器中设置唯一编号

时间:2012-11-29 12:24:05

标签: asp.net-mvc-3 entity-framework tsql triggers

我正在使用ASP.NET MVC3和Entity Framework with Database first aproach。 我有一个id(密钥),数字和描述列的表。我需要在项目插入后生成一个数字。我创建而不是触发器,我生成我需要的数字(它取决于数据库中已存在的最后一个数字)。 问题是:当用户同时插入项目时,两种情况下的数字都是相同的。因此,对于两个插入的项触发激发,触发器内部选择返回已经存在的相同的最后一个项目。

解决此类问题的最佳做法是什么? 感谢。

1 个答案:

答案 0 :(得分:1)

我相信这会对你有帮助。

http://www.sqlteam.com/article/custom-auto-generated-sequences-with-sql-server

此外,如果您使用的是SQL Server 2012,则会有一项名为SQL Sequence的新功能。这是Oracle数据库长期存在的东西。

如果你需要这些数字没有任何差距,我建议你锁定表(防止写),查询它,用max(数字)更新行并解锁它。