Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Datareader已在视图中打开,复杂对象_Asp.net_Asp.net Mvc_Code First_Datareader - Fatal编程技术网

Asp.net 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

我在视图中看到以下消息: 已存在与此连接关联的打开的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>();
    }
公共类产品
{
[显示名称(“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);

不确定它为什么能解决问题,但这不是答案!需要将这些放在问题部分,以便更好地了解您的需求。