实体 ria 保存后删除导航 属性 值
entity ria dropping navigation property values after save
我在使用 Silverlight 5、Ria 和 Entity Framework 时遇到问题。
保存修改后的实体时,SubmitChanges() 调用 returns 并将实体的某些导航属性设置为 null。保存正确发生;保存正确的值,如果稍后调用实体,则正确读入值,使用正确的值设置导航属性。
但是客户端的上下文正在更新为空值并且屏幕验证正在启动。
在保存前更改设置:
保存后立即更改设置:
有人知道为什么会这样吗?
我试过保存后刷新数据;通过调用用于填充屏幕的相同查询,LoadBehavior.RefreshCurrent。数据由它的父实体重新调用,因此当它被刷新时 所有子实体 现在都将它们的导航属性设置为 null。不仅仅是修改后的实体。
public kcc_Incentive GetKcc_IncentiveByID(Guid IncentiveID)
{
//kcc_Incentive Incentive = this.ObjectContext.kcc_Incentive.Where(i => i.IncentiveId == IncentiveID).FirstOrDefault();
//if (Incentive != null)
//{
// Incentive.kcc_IncentiveProductType.Load(); //these are the entities I'm having trouble with
// foreach (kcc_IncentiveProductType t in Incentive.kcc_IncentiveProductType)
// {
// t.rate_FullModelReference.Load();
// t.rate_BaseModelReference.Load();
// t.rate_SeriesReference.Load();
// }
//}
//return Incentive;
//getting same results regardless of how it is loaded
return ObjectContext.kcc_Incentive
.Include("kcc_IncentiveProductType.rate_FullModel")
.Include("kcc_IncentiveProductType.rate_BaseModel")
.Include("kcc_IncentiveProductType.rate_Series")
.Include("kcc_IncentiveProductType.rate_ProductType.dms_Make")
.FirstOrDefault(i => i.IncentiveId == IncentiveID);
}
谁能帮我保存我的价值观?
我发现了问题,它与我的逻辑工作方式非常相关。原来是一些级联逻辑将我的ids设置为null。这是我学到的,以防有人(或将来我自己)遇到类似问题。
如果您的实体中有额外的客户端属性,这些属性将在 SubmitChanges 调用期间被清除。服务器不知道它们,它们被设置为该类型的默认值。
如果您碰巧有这些客户端属性何时更改的逻辑,那么在保存期间,随着值被服务器清除,该逻辑将 运行。在我的例子中,我需要在保存之前抑制 属性 更改的逻辑,然后重置客户端属性。
我在使用 Silverlight 5、Ria 和 Entity Framework 时遇到问题。
保存修改后的实体时,SubmitChanges() 调用 returns 并将实体的某些导航属性设置为 null。保存正确发生;保存正确的值,如果稍后调用实体,则正确读入值,使用正确的值设置导航属性。
但是客户端的上下文正在更新为空值并且屏幕验证正在启动。
在保存前更改设置:
保存后立即更改设置:
有人知道为什么会这样吗?
我试过保存后刷新数据;通过调用用于填充屏幕的相同查询,LoadBehavior.RefreshCurrent。数据由它的父实体重新调用,因此当它被刷新时 所有子实体 现在都将它们的导航属性设置为 null。不仅仅是修改后的实体。
public kcc_Incentive GetKcc_IncentiveByID(Guid IncentiveID)
{
//kcc_Incentive Incentive = this.ObjectContext.kcc_Incentive.Where(i => i.IncentiveId == IncentiveID).FirstOrDefault();
//if (Incentive != null)
//{
// Incentive.kcc_IncentiveProductType.Load(); //these are the entities I'm having trouble with
// foreach (kcc_IncentiveProductType t in Incentive.kcc_IncentiveProductType)
// {
// t.rate_FullModelReference.Load();
// t.rate_BaseModelReference.Load();
// t.rate_SeriesReference.Load();
// }
//}
//return Incentive;
//getting same results regardless of how it is loaded
return ObjectContext.kcc_Incentive
.Include("kcc_IncentiveProductType.rate_FullModel")
.Include("kcc_IncentiveProductType.rate_BaseModel")
.Include("kcc_IncentiveProductType.rate_Series")
.Include("kcc_IncentiveProductType.rate_ProductType.dms_Make")
.FirstOrDefault(i => i.IncentiveId == IncentiveID);
}
谁能帮我保存我的价值观?
我发现了问题,它与我的逻辑工作方式非常相关。原来是一些级联逻辑将我的ids设置为null。这是我学到的,以防有人(或将来我自己)遇到类似问题。
如果您的实体中有额外的客户端属性,这些属性将在 SubmitChanges 调用期间被清除。服务器不知道它们,它们被设置为该类型的默认值。
如果您碰巧有这些客户端属性何时更改的逻辑,那么在保存期间,随着值被服务器清除,该逻辑将 运行。在我的例子中,我需要在保存之前抑制 属性 更改的逻辑,然后重置客户端属性。