1

我有一个User具有以下字段的类:

public int Id { get; set; }
public ICollection<Event> AdminEvents { get; set; }
public ICollection<Event> SubscribedEvents { get; set; }

我的Event课看起来像:

public int Id { get; set; }
public ICollection<User> Subscribed { get; set; }
public User Admin { get; set; }
public int AdminId { get; set; }

OnModelCreating 在我的Context

modelBuilder.Entity<User>().HasMany(u => u.SubscribedEvents).WithMany(u => u.Subscribed);
modelBuilder.Entity<User>().HasMany(u => u.AdminEvents).WithRequired(u => u.Admin).WillCascadeOnDelete(false);

  • 这里的重点是 User 可以创建一个 Event ( Event.Admin && Admin.Id) 并且可以订阅其他事件 ( User.SubscribedEvents && Event.Subscribed)
  • 当我尝试访问User.SubcribedEvents.ToList()它时会引发以下错误:

    值不能为空。参数名称:源

    但是插入有效,并且该值进入正确的表: **dbo.UserEvents**.

  • 我的实体设计有什么问题?如果您需要更多信息来追踪故障,请询问。谢谢!
4

1 回答 1

1

您的导航和集合属性(至少)应该是虚拟的,以便可以延迟初始化。

于 2012-07-26T19:03:59.180 回答