私はこのコードを持っています:
list = _dataContext.myTable
.Where(row => row.Label.Contains(myText))
.OrderBy(row => row.Label)
.Select(row => new MyClass
{
Field1 = row.Field1,
Field2 = row.Field2,
Field3 = row.Field3
}).ToList<IMyClass>();
list = _dataContext.myTable
.OrderBy(row => row.Label)
.Select(row => new MyClass
{
Field1 = row.Field1,
Field2 = row.Field2,
Field3 = row.Field3
}).ToList<IMyClass>();
ご覧のとおり、コードが重複しています。次に、これを行います:
private List<IMyClass> CreateObject(IOrderedQueryable<myTable> list)
{
return list.Select(row => new MyClass
{
Field1 = row.Field1,
Field2 = row.Field2,
Field3 = row.Field3
}).ToList<IMyClass>();
}
result = _dataContext.myTable
.Where(row => row.Label.Contains(myText))
.OrderBy(row => row.Label);
var finalList = CreateObject(result);
これを行うと、「Linq 2 SQL プロファイラー」で次の警告が表示されます。
複数のスレッドで単一のデータ コンテキストを使用することは、おそらくバグです。
CreateObject
メソッドを使用する場合にのみこれを持っています
何か案は?