解决方法:Submit 操作失败。为类型“BomExtend”上的集合属性“BomChildrenList”传递了一个或多个关联对象,但目标集合为 null。
2011-10-13 15:45 starlet 阅读(442) 评论(0) 编辑 收藏 举报实体:BomExtend为自定义实体
属性:BomChildrenList为自定义实体BomExtend的一个属性
[DataContract]
public class BomExtend
{
[Key, DataMember]
public Guid Number { get; set; }
public class BomExtend
{
[Key, DataMember]
public Guid Number { get; set; }
[DataMember]
public Guid ParentNumber { get; set; }
[DataMember]
[Association("Bomchildren", "Number", "ParentNumber")]
[Include]
public List<BomExtend> BomChildrenList { get; set; }
}
public Guid ParentNumber { get; set; }
[DataMember]
[Association("Bomchildren", "Number", "ParentNumber")]
[Include]
public List<BomExtend> BomChildrenList { get; set; }
}
当在客户端添加数据并且保存时提示错误:
System.ServiceModel.DomainServices.Client.DomainOperationException:
Submit 操作失败。为类型“BomExtend”上的集合属性“BomChildrenList”传递了一个或多个关联对象,但目标集合为 null。
客户端添加数据代码:
BomExtend childBomExtend = new BomExtend();
childBomExtend.Number = Guid.NewGuid();
childBomExtend.Number = Guid.NewGuid();
//parentBomExtend为父RowEntity
childBomExtend.ParentNumber = parentBomExtend.Number;
childBomExtend.ParentNumber = parentBomExtend.Number;
parentBomExtend.BomChildrenList.Add(childBomExtend);
当SubmitChange后,提示错误
错误原因:
silverlight客户端在增加新childBomExtend 时,仅仅是对某一个数据实体的BomChildrenList属性增加一个记录,而这个属性赋值后并不能传回到DomainService对应的方法,(具体原因不清楚)反正是不能传递,所以DomainServices报了一个异常
解决办法:
修改客户端代码:
BomExtend childBomExtend = new BomExtend();
childBomExtend.Number = Guid.NewGuid();
//parentBomExtend为父RowEntity
childBomExtend.ParentNumber = parentBomExtend.Number;
parentBomExtend.BomChildrenList.Add(childBomExtend);
_domainServicesClient.BomExtends.Add(childBomExtend);
childBomExtend.Number = Guid.NewGuid();
//parentBomExtend为父RowEntity
childBomExtend.ParentNumber = parentBomExtend.Number;
问题解决!!