在Entity Framework中锁定数据库行

3

我正在使用Entity framework 3.5。

我需要编辑一个数据库行,我想确保在我开始编辑它后没有其他进程会编辑此行。

如何在Entity Framework 3.5中实现这一目标?

我想锁定特定的行,而不是整个表。

2个回答

2
这可以通过实现“悲观并发”来实现。
请查看此 tutorial 以了解有关EF中并发的更多信息。该网站还有一些关于如何实现不同处理并发方法的教程。
希望这可以帮到你!

我认为它默认锁定整个表格? - SMK
我也这么认为,所以我们需要特别处理每一行的锁定。 - Logard
6
我如何锁定单独的行?我不想锁定整个表格。 - ashwnacharya

1

您可以像这样使用 Scope:

var transactionOptions = new TransactionOptions
{
    IsolationLevel = IsolationLevel.Serializable,
    Timeout = TimeSpan.MaxValue
};

using (var scope = new TransactionScope(
        TransactionScopeOption.Required, transactionOptions))
{
    // Your code
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接