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() –