到目前为止,我一直在使用经典的ADO.NET模型进行数据库访问。我必须告诉你,我对它很满意。但我最近也听说过很多关于Entity Framework的内容,所以我想我可以尝试一下。实际上推动我的主要原因是需要找到一种方法来构建我的存储过程的WHERE子句。使用经典方式,我必须执行以下任一操作:
我知道EF也可以使用存储过程。但是可以动态构建WHERE部分吗? EF能以某种方式拯救我吗?
答案 0 :(得分:1)
是的,您可以在Linq中使用动态查询。
var query = Northwind.Products.Where("Lastname LIKE "someValue%");
或一些复杂的查询
var query =
db.Customers.
Where("City = @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("new(CompanyName as Name, Phone)");
或从此回答Where clause dynamically.
var pr = PredicateBuilder.False<User>();
foreach (var name in names)
{
pr = pr.Or(x => x.Name == name && x.Username == name);
}
return query.AsExpandable().Where(pr);