在任意表上使用LINQ

时间:2012-05-21 14:40:46

标签: c# linq linq-to-sql

我喜欢LINQ esp。 LINQ to SQL。 LINQ用于静态表(其中表的结构事先已知)是很好的。

我现在有一个表格列表,我只知道表格名称(作为字符串)。我也知道表中的每一行都有一个ID /主键(int)和许多未确定的列,其数据类型是varchar / string。我可以使用SMO获取列的名称。

我想知道查询这些列的最佳方法是什么,例如在每个人身上分别运行?通过将查询直接转换为SQL,LINQ to SQL似乎非常高效。我不想手工编写SQL。

2 个答案:

答案 0 :(得分:0)

LINQ适用于类型 - 如果没有为表生成类,则无法真正使用LINQ。您试图在非强类型场景中使用强类型工具。

您可能需要SQL构建器库,例如http://www.codeproject.com/Articles/13419/SelectQueryBuilder-Building-complex-and-flexible-S

答案 1 :(得分:0)

也许动态linq会满足您的需求

Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library)

MSDN

下载

段:

// your columnnames would be more dynamic :)
string columnName1 = "id";
string columnName2 = "someOther";

// to execute a dynamic query simple put the columnnames with your 
yourContext.SomeItems
    .Where(string.Format("{0} == 123 and {1} > 4",columnName1, columnName2);