实体框架4.5和5以及串行列表处理可能没有存储过程?

时间:2014-02-13 20:48:14

标签: entity-framework concurrency

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

谢谢,皮特

1 个答案:

答案 0 :(得分:0)

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

点击此链接:http://blogs.msdn.com/b/alexj/archive/2009/05/20/tip-19-how-to-use-optimistic-concurrency-in-the-entity-framework.aspx?Redirected=true

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

检查此链接以获取更多信息: TransactionScope vs Transaction in LINQ to SQL