私は次のクラスを持っています
public pratial class Address
{
public Guid AddressID{ get; set; }
public AddressType AddressType{ get; set; }
}
public partial class AddressType
{
public string TypeName{ get; set; }
}
派生した DBContext クラスで、OnModelCreating をオーバーライドしました
protected override OnModelCreating(DBModelBuilder modelBuilder)
{
modelBuilder.Entity<Address>().HasKey( p => p.AddressID );
modelBuilder.Entity<Address>().Property ( p => p.AddressID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<Address>().HasRequired( p => p.AddressType);
modelBuilder.Entity<AddrssType>().HasKey( p => p.TypeName );
...
}
これにより、データベースにレコードを入力すると問題が発生します。
データベース内の私のテーブルは最終的にこのようになります
Addresses Table
AddressID (PK, uniqueidentified, not null)
AddressType_TypeName(FK, nvarchar(32), not null)
AddressTypes Table
TypeName (PK, uniqueidentifies, not null)
ここで、いくつかのデータをテーブルに入れます
AddressTypes レコード TypeName ビジネスに入力
Addresses レコード AddressType_TypeName で、Business に入力しました
これで単体テストを実行すると、記録に戻ることを期待しています
List<Address> addresses = context.Addresses.ToList()
Assert.AreEqual(addresses[0].AddressType.TypeName, "Business");
しかし、これはAddressTypeがnullであることを教えてくれません
接続した AddressType を取得できるように、Address と AddressType の関係を設定するにはどうすればよいですか?