无法将类型'System.Linq.IQueryable <int>'转换为'int'</int>

时间:2013-12-18 14:18:15

标签: c# database asp.net-mvc-4 controller

我在将数据从数据库发送到Controller中的列表时遇到问题。我是C#和MVC的新手,所以任何帮助都会有用!代码如下

public static List<FilterTree> GetAllUsers()
    {
        FilterTreeDBContext db = new FilterTreeDBContext();
        var userList = new List<FilterTree>();
        var device =  new FilterTree();
        //This is the line where I get the error
        device.ID = from a in db.FilterTree select a.ID;

        userList.Add(device);
        return userList;
    }

谢谢&amp;节日快乐!! :)

2 个答案:

答案 0 :(得分:12)

device.ID = (from a in db.FilterTree select a.ID).First();

Linq查询是惰性的,只有在请求值

后才会执行 BTW不要忘记关闭上下文,否则你会泄漏连接

using (var db = new FilterTreeDBContext())
{
    ...
    return userList;
}

答案 1 :(得分:2)

就框架知道查询可能有多个对象而言,请按照以下方式使用它:

device.ID = (from a in db.FilterTree select a.ID).FirstOrDefault();