具有数据库的动态 Linq

本文关键字:动态 Linq 数据库 | 更新日期: 2023-09-27 18:34:04

>我正在尝试理解斯科特·格思里(Scott Guthrie(在本例中使用的动态linq 动态查询

Scott在CsharpSamples文件中附加了一个文件作为示例,他使用动态查询在多个列中查找以进行搜索。我正在尝试了解动态查询的工作原理,以便我可以调整他的代码以在我的程序中工作。

下面的代码片段给我带来了最大的麻烦

var query = db.Customers.Where("City == @0 and Orders.Count >= @1", "London", 10).
            OrderBy("CompanyName").
            Select("New(CompanyName as Name, Phone)");

我不明白为什么他在第一行硬编码值"伦敦和"10"?

我想将动态查询用于搜索函数,其中表称为iamp_mapping,而我要搜索的列称为PA, Major Program, Investment_Area, DirectorVP

我希望用户能够使用单个搜索框在每一列中搜索是否存在值。这里还有我想用来搜索值的搜索功能。我能够让它与单列搜索一起工作,但不是每一列。

if (!String.IsNullOrEmpty(searchString))
{
}

我希望这是有道理的,请随时提出有助于诊断我的问题的任何问题。我会经常回来查看。

具有数据库的动态 Linq

正如我从您的评论中了解到的那样,您想要这样的东西:

var query = db.iamp_mapping.Where("PA == %0 and Major_Program == %0 and Investment_Area == %0 and Director == @0 and VP == @0", "ValueToSearchFor").
            OrderBy("...").
            Select("...");

注意:我没有完全测试它,但根据我的直觉,我会说这是有效的。当然,您仍然必须添加 排序方式 和 选择正确。

@0只是您为 Where 方法提供的第一个值参数。