2
作为图像中所描述的,我有一个parent-Children relation
并且由于ParentID
不接受空值(我不能更改为nullabel由于我有一些限制),我怎么能删除ReportDataSources之间的存在关系,以改变他们的父母(这里我想为他们其中的一个= 0设置parentId)我怎么能的是,由于i cant change the ParentID directly
和设置Parent = null
无效
public void SetReportDataSourceAsMaster(ReportDataSource reportDataSource)
{
//Reset Master
this.ReportDataSources.ToList().ForEach(rds => rds.IsMaster = false);
//Set Master
reportDataSource.IsMaster = true;
//Set Parent ID for the rest of the Reports data sources
this.ReportDataSources.Where(rds => rds.ID != reportDataSource.ID).ToList().ForEach(rds =>
{
//Change Parent ID
rds.Parent = reportDataSource;
//Remove filttering data
rds.FilteringDataMembers.Clear();
//Remove Grouping Data
rds.GroupingDataMembers.Clear();
});
//Delete parent HERE THE EXCEPTION THROWN AFTER CALLING SUBMITCHANGES()
reportDataSource.Parent = null;
}
异常吨调用SubmitChanges()
后hrown:
试图删除ReportDataSource和ReportDataSource之间的关系。但是,关系的外键之一(ReportDataSource.ParentID)不能设置为空。
+1我现在正在测试这个解决方案,如果有任何技巧我可以在LINQ中避免“selfParent”设置会更好 – 2011-01-11 11:17:40