我在同一张表上创建了一个关系,该关系在 OnModelCreating 中声明。请参阅下面的代码。
尝试使用以下代码获取所有项目时,出现var allitems = MyContext.WallItems
以下错误:“/”应用程序中的服务器错误。无法将“WallItem”类型的对象转换为“System.Collections.Generic.List`1[WallItem]”类型。
我是否以错误的方式定义了我的关系,还是有更好的方式?
[Table("WallItems")]
public class WallItem
{
public WallItem() { Id = Guid.NewGuid(); }
/// <summary>
/// Item Id
/// </summary>
[Key]
public Guid Id { get; set; }
/// <summary>
/// Enables replies on wall items. Links to the root item.
/// </summary>
public Guid? ThreadRoot { get; set; }
/// <summary>
/// Collection of replies
/// </summary>
public virtual List<WallItem> Comments { get; set; }
}
public class MyContext : DbContext
{
public DbSet<WallItem> WallItems { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<WallItem>()
.HasOptional(c => c.Comments)
.WithMany()
.HasForeignKey(c => c.ThreadRoot);
}
}