在任意表上使用 LINQ

本文关键字:LINQ 任意表 | 更新日期: 2023-09-27 18:35:02

我喜欢 LINQ

尤其是 LINQ to SQL。将 LINQ 用于静态表(其中表的结构事先已知(非常有用。

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

我想知道查询这些列的最佳方法是什么,例如对每个列运行不同的列?LINQ to SQL通过将查询直接转换为SQL似乎非常有效。我宁愿不手动编写 SQL。

在任意表上使用 LINQ

LINQ

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

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

也许动态 linq 可以满足您的需求

动态 LINQ

(第 1 部分:使用 LINQ 动态查询库(

从 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);