Ala*_*ano 24 .net c# entity-framework transactions
我正在使用Entity Framework 4.0.现在我需要限制对表的访问,当我从中读取或写入时.可能是关于事务隔离级别的.
我怎么做?
更新
这就是我所拥有的
using (var db = new MyDb())
{
using (TransactionScope scope = new TransactionScope())
{
var item = db.MyItems.Single(x => x.Id == 5);
item.Price = 12;
db.SaveChanges();
scope.Complete();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在内部的任何一行放置一个断点时using (TransactionScope scope,当我停在那里然后我去了Sql Server Management Studio并从一个在事务中使用的表做一个select查询(甚至更新!),我因某些原因没有收到错误.但为什么?它必须不允许我在执行事务时读取数据.
Wou*_*ort 31
默认情况下,Transaction具有Serializable 的IsolationLevel.Serializable是最高级别.它要求在允许任何其他事务对数据进行操作之前完成事务.
它有以下限制:
这是一篇很棒的博客文章,解释了如何在实体框架中使用事务:实体框架事务范围示例
在Entity Framework 6中,对于使用Code First创建的数据库,默认的IsolationLevel更改为READ_COMMITTED_SNAPSHOT,可能允许更多的可伸缩性和更少的死锁.请参阅EF 6的未来规范
| 归档时间: |
|
| 查看次数: |
36677 次 |
| 最近记录: |