2014-11-14 64 views
0

我在我的项目中使用EntityFramework.Extended库,其中包含代码优先实体模型。 我收到错误消息“序列包含多于一个元件”当我执行此LINQ语句和执行批从库中删除:批次删除时​​Entityframework.extensions错误“序列包含多个元素”

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

customerContext:

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(); 
     } 

在发生该错误是我的基础实体继承DBContext和RosterSummaryData_Subject_Local/_Bands/_Averages是一个子表。我导入库与使用参考,并注意到删除()方法,因此这种正常工作:

using EntityFramework.Extensions; 

是不是该批次的目的删除,以确保您能够在一次不应该删除多个项目该序列是否包含多个元素?有什么我在这里失踪?

回答

相关问题