0

我正在尝试理解 Scott Guthrie 在此示例Dynamic Query中使用的动态 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, Directorand VP

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

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

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

4

1 回答 1

1

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

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("...");

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

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

于 2012-05-14T18:35:45.677 回答