私はRIAサービスにアクセスしていますが、次の(簡体字)EFモデル、持っている:EFエンティティを効率的に削除するにはどうすればよいですか?
public class Employee
{
public long Id { get; set; }
public string Name { get; set; }
}
public class Department
{
public long Id { get; set; }
public string Name { get; set; }
public List<Employee> { get; set;}
}
を、私は私のDomainContextから部署を削除するとき、私は参照従業員が同様に削除されていることを、期待します。基本的にカスケード削除.EFで処理されます。
1.カスケードは、データベースレベルで削除を有効にします:
私は本当に、本当に、可能な場合に、すべてこれを行うには好きではないと思います
は今、私はこれを達成するための2つの方法が見つかりました。
2.ロードし、実行時に子実体(従業員)(現在実装):
ユーザーが部門を削除したい場合は、従業員がリストにロードされ、反復処理し、コンテキストから削除。私は助けることができないが、これはclunkyだと感じるが、それは動作します...
これを処理するための適切な方法についての任意の考えですか?ありがとう!
すべての子エンティティ(またはエンティティツリー全体)をロードして削除するだけで間違っていると感じます。つまり、EFが親エンティティタイプと子タイプを認識している場合、[parentId] = id *のDELETE FROM [childtable]を簡単に構築できるはずです。 – rumblefx0
しかし、EFはそれをしません。そのため、同じものなので、誰もがカスケード削除を使用しています。 –
私は、感謝を参照してください:) – rumblefx0