如何使用 ORM 处理并发
Posted
技术标签:
【中文标题】如何使用 ORM 处理并发【英文标题】:How To Handle Concurrency Using An ORM 【发布时间】:2010-08-29 00:54:12 【问题描述】:假设我正在编写一个用户必须预约的应用程序(在我的例子中,用户与员工配对,并且该员工将在一天中的特定时间为该用户工作)。我将如何确保 2 个用户最终不会使用 NHibernate 或实体框架预订同一个约会?我会打开交易并执行以下操作:
BeginTransaction();
if(!AppointmentBooked(userId, employeeId, time)) // read
BookAppointment(userId, employeeId, time); // write
CommitTransaction();
【问题讨论】:
【参考方案1】:查看这篇文章可能会有所帮助。我遇到了像你这样的问题。实体框架具有通过配置进行非乐观并发的能力。
http://msdn.microsoft.com/en-us/library/bb738618.aspx
【讨论】:
以上是关于如何使用 ORM 处理并发的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQLAlchemy ORM 会话中查询预先存在的表?
如何使用 Autofac 注入相同的 DbContext 实例来处理 HTTP 请求而不会导致并发问题?