Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

convert IQueryable<int> to <int>

I want to select my price level in database to compare with the an integer number. But It is error : Operator '==' cannot be applied to operands of type 'System.Linq.IQueryable' and 'int'. This is my code :

if (Request.IsAuthenticated){

CustomerModels cm = new CustomerModels();

string userName = Page.User.Identity.Name;
var list_pricelevel = from c in cm.DataContext.Customers
                      where c.WebAccount == userName
                       select c.PriceLevel;
 if (list_pricelevel == 3) {
    Response.Write("Welcome");
 }

 }
like image 568
Nothing Avatar asked Nov 28 '11 08:11

Nothing


2 Answers

var list_pricelevel

This is per definition not an int because more than one row can be returned.

I don't use SQL syntax (only lambda) but at the end you want the equivalent of a .FirstOrDefault or Single or First. Basically taking the first row.

like image 120
TomTom Avatar answered Sep 19 '22 08:09

TomTom


replace:

if (list_pricelevel == 3) 

with:

if (list_pricelevel.First() == 3) 

as you can see here: http://msdn.microsoft.com/en-us/library/bb291976.aspx, if you are sure there is a result or use FirstOrDefault...

like image 27
Davide Piras Avatar answered Sep 17 '22 08:09

Davide Piras