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);
Не уверен, почему это решает проблему, хотя