I have the following code:
public void SalesCount(string customerId)
{
..
..
return ...;
}
var resultQuery = dataContext.Customers
.Where (c => c.N
Add && between two where condition..It will work
yes, you can.
but you should change return type for your function:
public **int** SalesCount(string customerId)
{
..
..
return 500;
}
var resultQuery = dataContext.Customers.AsEnumerable()
.Where (c => c.Name == "Alugili" && SalesCount(c.CustomerId) < 100);
Simply you can't. You can't execute C# code on the SQL server directly, you can use only Expressions
and some special recognized functions...
Unless you transform your query (at least partially) in a LINQ-to-Objects...
var resultQuery = dataContext.Customers
.Where (c => c.Name == "Alugili")
.AsEnumerable()
.Where (c => SalesCount(c.CustomerId) < 100);
Be aware that the last Where
will be executed on the client side, so many useless rows will be fetched from the DB.
Try
var resultQuery = dataContext.Customers
.Where (c => c.Name == "Alugili")
.ToArray()
.Where (c => SalesCount(c.CustomerId) < 100);
But then the second Where
is not run as SQL but locally - all customers with the name "Alugili" are pulled from the DB...
Otherwise you have to write out your method directly in the where method as lambda expression.