私はEntityFrameworkv4.3.1を使用しており、DbContextから継承し、OnModelCreating()をオーバーライドすることにより、コードを介してモデルを構築しています。CompaniesというテーブルとMessagesというテーブルがあります。メッセージテーブルには、null許容の外部キーMessages.CompanyIdがあります。これを設定すると、特定のメッセージが特定の会社に関連付けられます。このフィールドがnullの場合、メッセージはすべての会社に関連付けられます。
私の問題は、OnModelCreating()メソッドでこの動作を表現する方法がわからないことです。私が行った場合:
modelBuilder.Entity<Message>().HasRequired(o => o.Company).WithMany(o => o.Messages).Map(o => o.MapKey("CompanyId"));
TestCompany.Messagesのような呼び出しを実行できるように、Companyのナビゲーションプロパティを正常に取得し、特定の会社に関連付けられたメッセージのリストを取得します。ただし、すべてのnullメッセージを返す必要もあります。
これはどのように達成できますか?