中程度のサイズ (約 20 の生成されたテーブル) である私のドメイン モデルでは、Entity Framework がマッピングしていない関係が 1 つだけあり、その理由がわかりません。AccountRecord
との関係 (1-1)Account
です。は、Account
ユーザーを持つアカウントを指します。
クラスは次のようになります。
public class Account
{
int ID { get; set; }
/* snip */
AccountRecord Record { get; set; }
}
public class AccountRecord
{
int ID { get; set; }
Account Account { get; set; }
/* snip */
}
マッピングは次のように定義されます。
public AccountConfiguration()
{
// Table name and primary key
ToTable("Accounts");
HasKey(x => x.ID);
Property(x => x.ID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("AccountId");
HasOptional(x => x.AccountRecord).WithRequired(x => x.Account);
}
public AccountRecordConfiguration()
{
// Table name and primary key
ToTable("AccountRecords");
HasKey(x => x.ID);
Property(x => x.ID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("AccountRecordId");
HasRequired(x => x.Account).WithOptional(x => x.AccountRecord);
}
両方のエンティティの他のすべての列が作成されていますが、これは作成されていません。アカウントのアカウント レコードを設定しようとすると、次のようになります。A dependent property in a ReferentialConstraint is mapped to a store-generated column