Entity framework 实体框架4.5和5以及串行列表处理是否可以不使用存储过程?

Entity framework 实体框架4.5和5以及串行列表处理是否可以不使用存储过程?,entity-framework,concurrency,Entity Framework,Concurrency,我的C#应用程序使用EF并对int列调用min(),以从数据库表中获取数字序列中的“下一个”数字。数据库表已经准备好了下一个X编号,我的EF代码只需要获得“下一个”编号,在获得该编号后,代码将删除该条目,以便下一个请求获得下一个编号。对于应用程序的一个实例,一切都是好的,但对于多个用户,这会导致并发问题。是否有一种设计模式,可以让所有用户以串行方式获取next min()值,而不必求助于存储过程?我使用的是EF4.5和EF5的混合版本 谢谢,Pete首先,您可以将时间戳类型列添加到表中,并在En

我的C#应用程序使用EF并对int列调用min(),以从数据库表中获取数字序列中的“下一个”数字。数据库表已经准备好了下一个X编号,我的EF代码只需要获得“下一个”编号,在获得该编号后,代码将删除该条目,以便下一个请求获得下一个编号。对于应用程序的一个实例,一切都是好的,但对于多个用户,这会导致并发问题。是否有一种设计模式,可以让所有用户以串行方式获取next min()值,而不必求助于存储过程?我使用的是EF4.5和EF5的混合版本


谢谢,Pete

首先,您可以将时间戳类型列添加到表中,并在Entity Framework属性窗口中将并发模式设置为Fixed。 这样做可以在表上启用乐观并发检查。如果有另一个数据上下文试图中断您的更新,它将生成一个异常

检查此链接:

或者,您可以在选择/更新逻辑上使用TransactionScope对象。您可以简单地用TransactionScope逻辑包装代码逻辑,范围内的所有内容都将由事务强制执行

有关详细信息,请查看此链接: