Datareader已在视图中打开,复杂对象

时间:2014-10-01 09:10:27

标签: asp.net asp.net-mvc code-first datareader

我在视图中收到此消息: 已经有一个与此Connection关联的开放DataReader,必须先关闭它。

这是我的模特:

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>();
    }

在视图中这是有效的:

<td>
 @Html.DisplayFor(modelItem => item.categoryId)
</td>

但这不起作用:

<td>
 @Html.DisplayFor(modelItem => item.category.categoryName)
</td>

实际上,如果我尝试在复杂对象中导航,我会收到有关datareader的消息。 任何的想法? :■

1 个答案:

答案 0 :(得分:0)

实际上我必须这样映射:

modelBuilder.Entity<Product>()
          .HasRequired(a => a.category)
          .WithMany()
          .HasForeignKey(u => u.categoryId);

不确定为什么它会解决问题