私はSupplierエンティティを持っています。各Supplierオブジェクトは別のSupplierオブジェクトをその「親」として参照します。Entity Framework 4.1コードファースト - 2つのエンティティ間の関係を削除できません
public class Supplier
{
public int? Id { get; set; }
public virtual Supplier Parent { get; set; }
}
このサプライヤには親が存在しないため、関係を削除しようとするまで、これはすべて正常に動作します。私はnullから特定のサプライヤに変更することができ、別のサプライヤに設定することはできますが、nullに設定することはSaveChanges()の後も保持されません。
supplier.Parent = null;
サプライヤテーブルの外部キー 'ParentId'は、NULL可能として設定されています。関係を明示的に定義することは役に立たない。
modelBuilder.Entity<Supplier>().HasOptional(s => s.Parent).WithMany();
私には明らかなものがありません。代わりにちょうどmodelBuilder.Entity<Supplier>().HasOptional(s => s.Parent).WithMany();
の
外部キーのプロパティを使用していません。つまり、ParentId – SeeNoWeevil
何か良い理由はありますか? –
私は同じ問題を抱えていましたが、Stephenは正しいです。あなたは外部キーを定義する必要があります。以下のArthur Vickersの記事を参照してください。http://social.msdn.microsoft.com/Forums/en-US/adonetefx/thread/35e7438b-ec1f-4d1f-bca0-539ccfb9abb1/ – Marthijn