Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot convert type 'System.Linq.IQueryable<int>' to 'int'

I have a problem sending data from the database to a list in the Controller. I am new to C# and MVC so any help will be useful! Code follows

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;
    }

Thanks & Happy Holidays!! :)

like image 580
Cristian Avatar asked Dec 18 '13 14:12

Cristian


2 Answers

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

Linq query is lazy, and executes only after you request the value

BTW don't forgot to close the context, otherwise you will leak connections

using (var db = new FilterTreeDBContext())
{
    ...
    return userList;
}
like image 50
Arsen Mkrtchyan Avatar answered Sep 21 '22 03:09

Arsen Mkrtchyan


As far as the frameworks knows that query may have more than one object so use it like this:

device.ID = (from a in db.FilterTree select a.ID).FirstOrDefault();
like image 31
Guillermo Oramas R. Avatar answered Sep 18 '22 03:09

Guillermo Oramas R.