C# LINQ在任意表上的使用

C# LINQ在任意表上的使用,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我喜欢LINQ,尤其是LINQ到SQL。在静态表中使用LINQ(表的结构在手之前就知道了)是非常好的 我现在有一个表列表,其中我只知道表名(作为字符串)。我还知道表中的每一行都有一个ID/主键(int)和一些数据类型为varchar/string的未确定列。我可以使用获取列的名称 我想知道查询这些列的最佳方式是什么,例如,对每个列运行一个不同的查询?通过将查询直接转换为SQL,LINQtoSQL似乎非常有效。我不希望手工编写SQL LINQ与类型一起工作-如果没有为表生成类,就不能真正使用LIN

我喜欢LINQ,尤其是LINQ到SQL。在静态表中使用LINQ(表的结构在手之前就知道了)是非常好的

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


我想知道查询这些列的最佳方式是什么,例如,对每个列运行一个不同的查询?通过将查询直接转换为SQL,LINQtoSQL似乎非常有效。我不希望手工编写SQL

LINQ与类型一起工作-如果没有为表生成类,就不能真正使用LINQ。您试图在非强类型场景中使用强类型工具


您可能需要一个SQL builder库,比如

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

从下载

片段:

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

我认为O.O.首先不能创建上下文,因为表在设计时不可用。没错。它在这些条件下不工作(没有已知的列名称)。我的错:)很抱歉,这对我不起作用,因为正如前面提到的,我只知道编译时的DB名称。没有别的了。谢谢你,谢谢雅库布·科内基。虽然我还没有尝试过这一点,但这可能是一种方法,因为它支持Distinct。