0

STE を使用しており、オブジェクトとその子の変更追跡を有効にしたいと考えています。私が今しなければならないことは、このようなことです。

int id = 1;

using(CustomerEntities context = new CustomerEntities())
{
    CustomerSection custSection = context.CustomerSections.Include("CustomerSections.Customers").SingleOrDefault(p => p.ID == id);

custSection.StartTracking();

    foreach(Customer cust in custSection.Customers)
    {
        cust.StartTracking();
    {

    return custSection;

}

私が探しているのは、子オブジェクトの変更追跡も自動的に有効にする方法です。それぞれをループして、変更の追跡を開始するように明示的に指示する必要はありません。

洞察をお寄せいただきありがとうございます。

4

1 に答える 1

0

ほとんどの場合、セルフ トラッキング エンティティを WCF と組み合わせて使用​​しています。その後、変更追跡を手動で有効にする必要はありません。これはすでに行われています。STE を生成する T4 テンプレートには、[OnDeserialized] 属性で装飾されたメソッドが含まれています。このメソッドは、エンティティが逆シリアル化されると追跡を開始します (これは通常、クライアントに到達した後に発生し、WCF がトランスポート用に生成した xml からランタイム クラス インスタンスに変換されます)。正確なコード例を参照してください。

    [OnDeserialized]
    public void OnDeserializedMethod(StreamingContext context)
    {
        IsDeserializing = false;
        ChangeTracker.ChangeTrackingEnabled = true;
    }

エンティティまたは T4 テンプレートを検索すると、すぐに見つかります。

于 2011-06-30T07:49:48.450 に答える