2014-11-14 80 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; 

是不是該批次的目的刪除,以確保您能夠在一次不應該刪除多個項目該序列是否包含多個元素?有什麼我在這裏失蹤?

回答

相關問題