DataReader уже открыт в представлении, сложный объект

Я получаю это сообщение в виде: уже существует открытый 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>

На самом деле, если я пытаюсь перемещаться по сложному объекту, я получаю сообщение о считывателе данных. Любая идея?:s

1 ответ

На самом деле я должен был сопоставить, как это:

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

Не уверен, почему это решает проблему, хотя

Другие вопросы по тегам