无法隐式转换类型'int?'到'system.collections.generic.list <int>?</int>

时间:2012-09-28 11:35:15

标签: c#-4.0 entity-framework-4

我收到错误

  

无法隐式转换类型'int?'到'system.collections.generic.list?

有人可以帮我这个吗?

internal class PatchDetails
{
    internal List<int> ServerID { get; set; }
    internal List<string> PatchStatus { get; set; }
}
class Program
{        
    void PatchQueue()
    {
        List<PatchDetails> patchinfo = new List<PatchDetails>();            
        using (PatchEntities server = new PatchEntities())
        {
            patchinfo = (from patches in server.AppPM_Patches
                         where patches.PatchStatus == "Started" 
                         || patches.PatchStatus == "NotStarted"
                         select new PatchDetails { ServerID = patches.ServerId, PatchStatus = patches.PatchStatus }).ToList();
        }
    }
}       

2 个答案:

答案 0 :(得分:2)

您在对象中添加了intstring,因此我认为您希望每个PatchDetails包含这些内容,而不是其中的列表:

internal class PatchDetails
{
  internal int? ServerID { get; set; }
  internal string PatchStatus { get; set; }
}

如果您不希望ServerID属性可以为空,请从查询中的int?获取值:

ServerID = patches.ServerId.Value

答案 1 :(得分:0)

select语句返回一个PatchDetails对象,试图将单个类强制转换为不正确的列表。

如果您尝试获取单个对象,则可以删除.ToList()。