Asp.net mvc InvalidOperationException:序列不包含元素
我使用mvc和实体框架在.net中编写了一段代码:Asp.net mvc InvalidOperationException:序列不包含元素,asp.net-mvc,entity-framework,invalidoperationexception,Asp.net Mvc,Entity Framework,Invalidoperationexception,我使用mvc和实体框架在.net中编写了一段代码: @{ List<DAL.Project> oldProjectList = new BL.ProjectLogic().getProjects(userName).Where(s => s.Status == "Not Active").ToList(); } @foreach (DAL.Project p in oldProjectList) { {some code} } 如何修复它? 谢谢您确定fore
@{
List<DAL.Project> oldProjectList = new BL.ProjectLogic().getProjects(userName).Where(s => s.Status == "Not Active").ToList();
}
@foreach (DAL.Project p in oldProjectList)
{
{some code}
}
如何修复它?
谢谢您确定foreach中正在抛出异常吗?在这个可复制的小示例中,我无法在执行时得到相同的错误:
using System;
using System.Collections.Generic;
using System.Linq;
namespace LinqPlayground
{
class Program
{
public class Project
{
public string Status { get; set; }
}
static void Main(string[] args)
{
var projects = GetProjects("test").Where(project => project.Status == "Not Active").ToList();
foreach (var project in projects)
{
Console.WriteLine(project.Status);
}
}
public static IEnumerable<Project> GetProjects(string userName)
{
return new List<Project>();
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
名称空间LinqPlayground
{
班级计划
{
公共类项目
{
公共字符串状态{get;set;}
}
静态void Main(字符串[]参数)
{
var projects=GetProjects(“test”).Where(project=>project.Status==“notactive”).ToList();
foreach(项目中的var项目)
{
Console.WriteLine(项目状态);
}
}
公共静态IEnumerable GetProject(字符串用户名)
{
返回新列表();
}
}
}
使用该行的第一部分,但不要使用ToList()
相反,将Where()的结果保存在一个变量中,然后使用检查该变量。Any():
var temp=new BL.Proje s ctLogic().getProjects(用户名)
其中(=>s.状态==“未激活”);
列表oldProjectList=
temp.Any()?
温度表():
新列表();
调用堆栈?我很确定ProjectLogic
或getProjects
中您自己的代码会引发异常。
using System;
using System.Collections.Generic;
using System.Linq;
namespace LinqPlayground
{
class Program
{
public class Project
{
public string Status { get; set; }
}
static void Main(string[] args)
{
var projects = GetProjects("test").Where(project => project.Status == "Not Active").ToList();
foreach (var project in projects)
{
Console.WriteLine(project.Status);
}
}
public static IEnumerable<Project> GetProjects(string userName)
{
return new List<Project>();
}
}
}
var temp = new BL.Proje s ctLogic().getProjects(userName)
.Where( => s.Status == "Not Active");
List<DAL.Project> oldProjectList =
temp.Any() ?
temp.ToList() :
new List<DAL.Project>() ;