在Silverlight 4 RIA中为新的DomainService introductory tutorial后,我遇到了意外的异常。当我执行更新时,属性EntitiesInError[index].EntityConflict.PropertyNames
会引发以下异常:
InvalidOperationException:PropertyNames不可用于删除冲突。
执行的服务方法:
public void UpdateSr_Supplier(sr_Supplier currentsr_Supplier)
{
// UPDATE the existing sr_Supplier
this.ObjectContext.sr_Supplier.AttachAsModified(currentsr_Supplier, this.ChangeSet.GetOriginal(currentsr_Supplier));
}
从this thread上的答案我收集到我应该使用支持Silverlight的服务和自定义服务对象(DataContract
和DataMember
),然后分配这些自定义服务对象的值到实际的服务器对象(从DB模型生成,是Linq到Sql或实体数据模型),并在DataContext上手动调用SubmitChanges()
。
答案 0 :(得分:0)
如果您正在处理的错误是删除冲突,PropertyNames将抛出异常,这是正常的。您应该查找底层数据库错误,这可能忽略了设置非空值或主键冲突等。