コードファーストのEntity Framework 5を使用しています。
次のようなPOCOがあります。
public class Order
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Status Status { get; set; }
public Order()
{
this.Status = new Status() { Id = 1 }
}
}
これは次のように流暢にマッピングされます。
public class OrderMap : EntityTypeConfiguration<Order>
{
public OrderMap()
{
ToTable("Order");
HasKey(x => x.Id);
Property(x => x.Id);
Property(x => x.Name).IsRequired();
HasRequired(x => x.Status)
.WithMany(x => x.Orders)
.Map(x => x.MapKey("StatusId"));
}
}
データベースでは、Order
テーブルのデフォルト値が にStatusId
設定されてい1
ます。
ただし、新しい を追加すると、次のOrder
エラーが発生します。
PRIMARY KEY 制約 'Status_PK' に違反しています。オブジェクト 'dbo.Status' に重複するキーを挿入できません。重複キーの値は (1)
ctor で割り当てを削除すると、Status
代わりに次のようになります。Order
値 NULL を列 'StatusId'、テーブル 'MyDatabase.dbo.Order' に挿入できません。列はヌルを許可しません。INSERT の失敗
外部キー プロパティの既定値を設定するにはどうすればよいですか?