How can I call local method in Linq to Entities query?

后端 未结 4 1556
感动是毒
感动是毒 2020-12-10 14:51

I have the following code:

public void SalesCount(string customerId)
{
  ..
  ..
  return ...;
}

var resultQuery = dataContext.Customers
.Where (c => c.N         


        
4条回答
  •  一向
    一向 (楼主)
    2020-12-10 15:42

    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.

提交回复
热议问题