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);

  • ここでのポイントは、ユーザーがイベントを作成し ( Event.Admin && Admin.Id)、他のイベントにサブスクライブできる ( User.SubscribedEvents && Event.Subscribed)ことです。
  • アクセスしようとするUser.SubcribedEvents.ToList()と、次のエラーがスローされます。

    値を null にすることはできません。パラメータ名: source

    しかし、挿入は機能し、値は右側のテーブルに入ります: **dbo.UserEvents**.

  • エンティティの設計の何が問題になっていますか?. 問題を追跡するためにさらに情報が必要な場合は、お問い合わせください。ありがとう!
4

1 に答える 1

1

ナビゲーションとコレクションのプロパティ (少なくとも) は、遅延初期化できるように仮想化する必要があります。

于 2012-07-26T19:03:59.180 に答える