加载嵌入实体时发生EntityCommandExecutionException
本文关键字:EntityCommandExecutionException 实体 加载 | 更新日期: 2023-09-27 18:06:09
我有一个代码,从我的数据库获取所有产品:
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与以下内部异常:已经有一个开放的数据阅读器与这个命令相关联,必须首先关闭。试图访问product.KeyPair
.
有趣的是,如果我刷新product.KeyPair
通过调试器-它加载良好
添加
MultipleActiveResultSets=true
到实体框架连接字符串中连接字符串的提供者部分(即定义数据源、初始目录等的部分)