C# 在C中创建用于生成SQL语句的接口

C# 在C中创建用于生成SQL语句的接口,c#,sql,C#,Sql,有没有一种更简洁的方法可以使用LINQ类型的接口或任何其他接口来执行以下操作。我通常使用NHibenate,但由于我正在构建的系统的动态特性,我需要执行以下操作 StringBuilder select = new StringBuilder("select "); select.Append("Column1, "); select.Append("Column2, "); select.Append("Column3 "); select.Append("from TableName tn"

有没有一种更简洁的方法可以使用LINQ类型的接口或任何其他接口来执行以下操作。我通常使用NHibenate,但由于我正在构建的系统的动态特性,我需要执行以下操作

StringBuilder select = new StringBuilder("select ");
select.Append("Column1, ");
select.Append("Column2, ");
select.Append("Column3 ");
select.Append("from TableName tn");
select.AppendFormat("where tn.Column1 = {0}", 12);

DataSet dataSet = select.ExecuteSelect() // is an extension method that takes a string builder
所有字符串值都来自一个元列和元表元存储,它允许我构造stations。第四,它们相当简单。没有连接,只是插入和更新。最多有50个不同的表,列的范围为100+-。我希望能够做一些像

string statement = select allColumns from new TableName<"TableName">() where UniqueKey<"Column1">(12); 

像这样的。。。有什么想法吗?

看看一些微型ORM。你应该玩得很好

看看一些微型ORM。我不确定这是否是您想要的,但是您可以创建自己的静态类来封装创建语句的过程并使用它们,例如:SQLCreator.createselectnewlist{ColumnToSelect},TableToSelectFrom,SampleColumn<10+1.好主意,不过似乎有点松散。@Lucas。。。我可能会使用一堆扩展来控制接口。@Lucas我想你是对的,没有好的方法来隐藏它,这只会让我感觉不好。如果你想隐藏SQL构建代码,你可以创建一些很好的可重用类,这样做:。实现它来处理linq语法可能更难实现,以使其高效工作,使用一些语句构建类/扩展方法非常简单和直观。我不确定这是否是您想要的,但是您可以创建自己的静态类来封装创建语句的过程并使用它们,例如:SQLCreator.createselectnewlist{ColumnToSelect},TableToSelectFrom,SampleColumn<10+1.好主意,不过似乎有点松散。@Lucas。。。我可能会使用一堆扩展来控制接口。@Lucas我想你是对的,没有好的方法来隐藏它,这只会让我感觉不好。如果你想隐藏SQL构建代码,你可以创建一些很好的可重用类,这样做:。实现它来处理linq语法可能更难实现,以使其高效工作,使用一些语句构建类/扩展方法非常简单和直观。