如镜像所描述,我得到一个parent-Children relation,并且由于ParentID不接受空值(并且由于我所具有的UI的某些限制,我不能更改为nullabel),如何删除两者之间的存在关系ReportDataSources为了更改它们的父项(在这里我想为其中之一设置parentId = 0)我该怎么做,因为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()后引发异常:


  试图删除ReportDataSource和ReportDataSource之间的关系。但是,关系的外键之一(ReportDataSource.ParentID)不能设置为null。

最佳答案

您不能使根元素成为其自己的父元素吗?每次要递归地查找元素祖先时,都必须进行检查(以避免无限循环),但是我认为它对您来说很好。

关于c# - 如何让一列在自相关表中将空值接受为零(0),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4656791/

10-12 07:40