0

これは私のコードです:

DatabaseDataContext context = new DatabaseDataContext();

var sourceList = (from q in context.Table1 where col1< 2000 select q).ToList();

foreach( Type x in sourceList)
{
    var task = Task.Factory.StartNew(() => FetchData(x));
}

FetchData(x)
{
    SomeBO obj = new SomeBO();

    obj.Prop1 = x.Table2.col;
    obj.Prop2 = x.Table3.col;
}

このコードを実行すると、「このコマンドに関連付けられた開いている DataReader が既に存在するため、最初に閉じる必要があります」という例外が発生します。「sourceList」内のすべてのリスト項目に対して「FetchData」メソッドを並行して実行するにはどうすればよいですか?

4

3 に答える 3

0

「このコマンドに関連付けられた開いている DataReader が既に存在します。これを最初に閉じる必要があります」

リンクEntity Framework - There is already an open data reader associated with this command を見ることができます

「sourceList」内のすべてのリスト項目に対して「FetchData」メソッドを並行して実行するにはどうすればよいですか?

Parallel.ForEachが必要だと思います

于 2013-05-24T09:15:31.403 に答える