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 回答