Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc InvalidOperationException:序列不包含元素_Asp.net Mvc_Entity Framework_Invalidoperationexception - Fatal编程技术网

Asp.net mvc InvalidOperationException:序列不包含元素

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

我使用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}
}
如何修复它?
谢谢

您确定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>() ;