【发布时间】:2010-12-12 18:30:43
【问题描述】:
我试图弄清楚 TransactionScope 如何使用代表不同事务场景的示例代码来工作...
你能解释一下当我有 2 个并发 TransactionScopes 每个都有自己的连接时,日期实际发生了什么?就像在这个示例代码中一样:
internal class Program
{
private const int Count = 20;
private static readonly Random Random = new Random();
private static void Main(string[] args)
{
var task1 = new Task(Task1);
var task2 = new Task(Task2);
task1.Start();
task2.Start();
Console.ReadLine();
}
private static void Task1()
{
var connection = new EntityConnection("name=ModelContainer");
using (var transaction = new TransactionScope())
{
DoWork(connection);
transaction.Complete();
}
}
private static void Task2()
{
var connection = new EntityConnection("name=ModelContainer");
using (var transaction = new TransactionScope())
{
DoWork(connection);
transaction.Complete();
}
}
private static void DoWork(EntityConnection connection)
{
connection.Open();
using (var context = new ModelContainer(connection))
{
List<SyncData> list = context.SyncDataSet.ToList();
for (int i = 0; i < Count; i++)
{
list[i].Knowledge.Version = Random.Next(200);
context.SaveChanges();
}
}
}
}
【问题讨论】:
标签: c# entity-framework transactions transactionscope