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;
是不是該批次的目的刪除,以確保您能夠在一次不應該刪除多個項目該序列是否包含多個元素?有什麼我在這裏失蹤?
那麼這個庫不工作呢?或者我可以重新安裝它或嘗試類似的東西。 – frontin
您可以使用.ToList()而不是.Delete() 循環遍歷列表並單獨刪除它。 Like .. foreach(var item in list)item.Delete() –