DB からすべての製品を取得するコードがあります。
using (var entities = new DataEntities())
{
var products = entities.Products.AsQueryable();
if (!string.IsNullOrEmpty(nameFilter))
{
products = products.Where(o => o.Name.Contains(nameFilter));
}
var result = products.Select(ProductBuilder.CreateProductDto);
return result.ToList();
}
CreateProductDtoメソッド:
public static ProductDto CreateProductDto(this Product product)
{
return new ProductDto
{
Id = product.Id,
Name = product.Name,
IsEnabled = product.IsEnabled,
KeyPairDto = new KeyPairDto()
{
Id = product.KeyPair.Id,
EncryptedPrivateExponent = product.KeyPair.EncryptedPrivateExponent,
Modulus = product.KeyPair.Modulus,
PublicExponent = product.KeyPair.PublicExponent,
},
};
}
私の同僚のマシンでは問題なく動作します。しかし、次の内部例外で EntityCommandExecutionException を取得します。最初に閉じる必要があるこのコマンドに関連付けられた開いている DataReader が既にあります。アクセスしようとするとproduct.KeyPair
。
興味深いことにproduct.KeyPair
、デバッガーを介して更新すると、正常に読み込まれます。