【发布时间】:2013-03-28 08:16:38
【问题描述】:
我有一个从我的数据库中获取所有产品的代码:
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 时。
有趣的是,如果我通过 Debugger 刷新 product.KeyPair - 它加载正常。
【问题讨论】:
标签: c# sql-server database entity-framework