C# LINQ在任意表上的使用
我喜欢LINQ,尤其是LINQ到SQL。在静态表中使用LINQ(表的结构在手之前就知道了)是非常好的 我现在有一个表列表,其中我只知道表名(作为字符串)。我还知道表中的每一行都有一个ID/主键(int)和一些数据类型为varchar/string的未确定列。我可以使用获取列的名称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
我想知道查询这些列的最佳方式是什么,例如,对每个列运行一个不同的查询?通过将查询直接转换为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。