2012-05-19 12 views
1

是否有一种更好的方式来使用LINQ类型接口或其他任何其他方法进行以下操作。我通常使用NHibenate,但由于系统的动态性,我正在构建我需要执行以下操作。在C#中创建一个用于生成SQL语句的接口

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 

所有字符串值都来自MetaColumn和MetaTable元存储,它允许我构造这些语句。幸运的是,它们非常简单。没有加入,只是插入和更新。有多达50个不同的表格,列数为100 + - 。我想能够做些类似于

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

这样的事情......任何想法?

+1

我不确定这是你想要的,但你可以创建你自己的静态类来封装创建语句的过程并使用它们,即像这样:'SQLCreator.CreateSelect(new列表(){“ColumnToSelect”},“TableToSelectFrom”,“SampleColumn <10”);' –

+0

+1。很酷的想法,但它似乎有点松散类型。 – Jonathan

+0

@Lucas ...我可能会使用一堆扩展来控制界面。 – Jonathan

回答

1

看看一些微型ORM。 Simple Data应该很适合你