我正在使用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;
}
我正在寻找的是一种自动启用子对象更改跟踪的方法,无需遍历每个对象并明确告诉它开始跟踪更改。
提前感谢任何见解。
答案 0 :(得分:0)
很可能您正在将自我跟踪实体与WCF结合使用。然后,不需要手动启用更改跟踪。这已经为你完成了。生成STE的T4模板包括一个用[OnDeserialized]属性修饰的方法,该属性在反序列化实体后开始跟踪(在到达客户端之后正常发生,并从WCF为传输生成的xml转换回运行时类实例。请参阅确切的代码示例:
[OnDeserialized]
public void OnDeserializedMethod(StreamingContext context)
{
IsDeserializing = false;
ChangeTracker.ChangeTrackingEnabled = true;
}
搜索您的实体或T4模板,您很快就会发现这一点。