Entity Framework バージョン 4.0 (または .NET 4.0 と互換性のあるその他のバージョン) を使用して、次の既存のリレーショナル データベース スキーマをマップします。

この論理オブジェクト モデルに:

私は次のように設定しようとしました: (ドイツ語のキャプションが混乱しないことを願っています.)

Entity Framework で次のエラーが表示されます。
FooBs.Bエラー 3031: フラグメントのマッピングに問題があります …:テーブル内の null 非許容列がFooBsnull 許容エンティティ プロパティにマップされています。
論理モデルでは、Bnull 許容である必要があります。ただし、データベースでは別のテーブルに存在するため、そうではありません。(null 許容データベース列は避けたいと思います。)FoosとFooBsが結合された場合にのみ null 許容になります (1:0..1 カーディナリティのため)。
データベース スキーマまたはオブジェクト モデルを変更せずにマッピングを修正するにはどうすればよいですか?
PS:この EF 6.0 コードファースト マッピングも試しました。
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Foo>() .HasKey(f => f.Id) .Property(f => f.Id).HasColumnName("FooId").HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); modelBuilder.Entity<Foo>().Map(f => { f.Property(_ => _.A); f.ToTable("Foos"); }).Map(f => { f.Property(_ => _.B); f.ToTable("FooBs"); }); }しかし、これも機能しません。データベースから読み取るとき、EF は にサブレコードがないすべてのレコードを無視し
FooBsます。データベースに書き込むとき、プロパティが に設定されているすべてに対して挿入NULLを試みます。FooBs.BFooBnull