Foreach循环错误

3D-*_*tiv 9 c#

in在foreach循环中指向错误!?从来没有发生过.这可能是什么原因?我错过了什么吗?

错误信息:

EntityFramework.SqlServer.dll中出现"System.NotSupportedException"类型的异常,但未在用户代码中处理


附加信息:无法创建"System.Object"类型的常量值.在此上下文中仅支持基元类型或枚举类型.

我的代码:

List<int> WeeksInProject = new List<int>();
var w = from x in db.Activities 
        where x.ProjectID.Equals(1) 
        select x;

foreach (var wNum in w)
{
    WeeksInProject.Add(wNum.WeekNumber);
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ela 6

var w = from x in db.Activities 
        where x.ProjectID.Equals(1) select x;
Run Code Online (Sandbox Code Playgroud)

应该:

var w = from x in db.Activities 
        where x.ProjectID == 1 select x;
Run Code Online (Sandbox Code Playgroud)

如果ProjectIDint?,

var w = from x in db.Activities where 
        x.ProjectID.HasValue &&
        x.ProjectID.Value == 1 select x;
Run Code Online (Sandbox Code Playgroud)


Fel*_*tor 2

List<int> WeeksInProject = new List<int>();
var w = from x in db.Activities 
        where x.ProjectID != null && (int)x.ProjectID == 1 
        select x;

foreach (var wNum in w)
{
    WeeksInProject.Add(wNum.WeekNumber);
}
Run Code Online (Sandbox Code Playgroud)

由于 ProjectID 是一个,因此int?您必须检查是否为空,然后进行强制转换。