Asp.net Datareader已在视图中打开,复杂对象
我在视图中看到以下消息: 已存在与此连接关联的打开的DataReader,必须先关闭该连接 这是我的模型:Asp.net Datareader已在视图中打开,复杂对象,asp.net,asp.net-mvc,code-first,datareader,Asp.net,Asp.net Mvc,Code First,Datareader,我在视图中看到以下消息: 已存在与此连接关联的打开的DataReader,必须先关闭该连接 这是我的模型: public class Product { [DisplayName("Id Produit")] public int productId { get; set; } [DisplayName("Nom du produit")] public string productName { get; set; } [DisplayName("Li
public class Product
{
[DisplayName("Id Produit")]
public int productId { get; set; }
[DisplayName("Nom du produit")]
public string productName { get; set; }
[DisplayName("Lien")]
public string productLink { get; set; }
[DisplayName("Categorie")]
public int categoryId { get; set; }
[ForeignKey("categoryId")]
public virtual Category category { get; set; }
[DisplayName("Tags")]
public virtual ICollection<Tag> tags { get; set; }
public Product()
{
tags = new HashSet<Tag>();
}
公共类产品
{
[显示名称(“Id产品”)]
public int productId{get;set;}
[显示名称(“产品名称”)]
公共字符串productName{get;set;}
[显示名称(“留置权”)]
公共字符串productLink{get;set;}
[显示名称(“分类”)]
public int categoryId{get;set;}
[外国钥匙(“类别”)]
公共虚拟类别{get;set;}
[显示名称(“标签”)]
公共虚拟ICollection标记{get;set;}
公共产品()
{
tags=newhashset();
}
在视图中,这是可行的:
<td>
@Html.DisplayFor(modelItem => item.categoryId)
</td>
@DisplayFor(modelItem=>item.categoryId)
但这是行不通的:
<td>
@Html.DisplayFor(modelItem => item.category.categoryName)
</td>
@DisplayFor(modelItem=>item.category.categoryName)
实际上,如果我尝试在复杂对象中导航,我会得到关于datareader的消息。
有什么想法吗?:s实际上,我必须这样绘制地图:
modelBuilder.Entity<Product>()
.HasRequired(a => a.category)
.WithMany()
.HasForeignKey(u => u.categoryId);
modelBuilder.Entity()
.HasRequired(a=>a.category)
.有很多
.HasForeignKey(u=>u.categoryId);
不确定它为什么能解决问题,但这不是答案!需要将这些放在问题部分,以便更好地了解您的需求。