在C#中构建SQL查询生成器接口

问题描述:

我正在构建一个SQL接口,它将充当接口,以便能够为许多数据库(包括SQLite和MySql)构建SQL查询。在C#中构建SQL查询生成器接口

由于查询字符串在这两种数据库类型之间的语法不同,我认为这里的接口是最好的解决方法。

我想确保每个方法(插入,CreateTable,ReadColumn)具有所有必要的参数来建立一个工作的查询,并提供最大的功能。

目前,这是我...

public interface IDatabase 
    { 
     bool CreateTable(SqlTable table); 
     bool AlterTable(SqlTable from, SqlTable to); 
     bool UpdateValue(string table, List<SqlValue> values, List<SqlValue> wheres); 
     bool InsertValues(string table, List<SqlValue> values); 
     bool ReadColumn(string table, List<SqlValue> wheres); 
     bool DeleteRow(string table, List<SqlValue> wheres); 
    } 

任何人都可以提出任何添加/编辑我应该让我的界面,使其更实用?

感谢 颠簸

+1

也许考虑[动态linq](http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library。 ASPX)。如果它们不存在,您可以始终实现自己的查询提供程序。 – 2012-01-11 08:28:05

什么ORDERGROUP BYHAVINGTOP(SQL服务器),LIMIT(MySQL的)等?我不认为这可以很容易地通过接口来表示,除非您将自己限制为SQL的一个公共子集。