Entityframework.extensions错误"序列包含多个元素"批量删除

时间:2014-11-14 00:57:20

标签: c# linq entity-framework

我在我的项目中使用EntityFramework.Extended库,其中包含代码第一个实体模型。 当我执行这个linq语句并从库中执行批量删除时,我收到错误消息“sequence包含多个元素”:

var subjLocal = (from subjectLocal in customerContext.RosterSummaryData_Subject_Local
                         where ((subjectLocal.fkRosterSetID == 0) &&
                                (statsInfo.TestInstanceIDsList.Contains(subjectLocal.fkTestInstanceID)) &&
                                (subjectLocal.fkTestTypeID == statsInfo.TestTypeID) &&
                                (statsInfo.SchoolYearIDsList.Contains(subjectLocal.fkSchoolYearID)) &&
                                (subjectLocal.fkRosterTypeID == 1) &&
                                (subjectLocal.fkSchoolID == 0) &&
                                (subjectLocal.fkDepartmentID == 1) &&
                                (subjectLocal.fkCourseID == 1) &&
                                (subjectLocal.fkPeriodID == 1) &&
                                (statsInfo.DemoCatIDsList.Contains(subjectLocal.fkDemoCommonCategoryID)) &&
                                (statsInfo.DemoCodeIDsList.Contains(subjectLocal.fkDemoCommonCodeID)) &&
                                (statsInfo.TestSubjectIDsList.Contains(subjectLocal.fkTest_SubjectID)))
                         select subjectLocal.pkSummarySubjectLocalID).ToArray();

        if (subjLocal.Length > 0)
        {
            customerContext.RosterSummaryData_Subject_Local.Where(s => subjLocal.Contains(s.pkSummarySubjectLocalID)).Delete();
            customerContext.RosterSummaryData_Subject_Local_Bands.Where(s => subjLocal.Contains(s.fkSummarySubjectLocalID)).Delete();
            customerContext.RosterSummaryData_Subject_Local_Averages.Where(s => subjLocal.Contains(s.fkSummarySubjectLocalID)).Delete();

            customerContext.SaveChanges();
        }

错误发生在:

customerContext.RosterSummaryData_Subject_Local.Where(s => subjLocal.Contains(s.pkSummarySubjectLocalID)).Delete();

customerContext是我继承DBContext的基础实体,而RosterSummaryData_Subject_Local / _Bands / _Averages是子表。我正在使用using引用导入库,它注意到Delete()方法,所以这可以正常工作:

using EntityFramework.Extensions;

批量删除的目的不是确保您可以一次删除多个项目,而且序列不应包含多个元素吗?我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:1)

您可以在此处找到类似的帖子EntityFramework.Extensions 6.1 Batch Delete throws "Sequence contains more than one element"

根据@deherech,它似乎是扩展框架中的一个错误