1

Petapoco ORM プロジェクトで、複数の DBMS をサポートしたいと考えています。たとえば、Oracle、SQL Server、MySQL などです。そのため、複数のデータベースをサポートする SQL クエリ ビルダーを使用する必要があります。

クエリの問題の基本的な例:

上位 2 つのレコードを取得するための SQL Server のクエリは次のとおりです。

SELECT TOP 2 * FROM table_name

しかし、Oracleでは次のとおりです。

SELECT * FROM table_name WHERE ROWNUM <=2
4

4 に答える 4

1

組み込みPageメソッドまたはを使用しSkipTakeます。

ページング コードを SQL にラップします。

例えば。

db.Fetch<User>(1, 10, "select * from table_name order by id");

これにより、次のようなものが生成されます。

select * from (select *, row_number() over (order by id) from table_name) poco
where row_num between 0 and 10

これは、Oracle と SQL Server の両方で機能します。Mysql と Postgres は独自のバリアントを使用します。例えばLIMIT

于 2013-06-25T12:44:44.363 に答える
0

EasyQueryを試してください。

このライブラリには、クエリを何らかの内部形式で格納し、SQL を生成するために使用される Query オブジェクトがあります。クエリ オブジェクトには、生成された SQL ステートメントの構文を調整できる Formats プロパティがあります。最も一般的な DB (MS SQL Server、Oracle、MySQL など) には、いくつかの定義済みの値があります。

于 2013-05-13T09:18:10.280 に答える
0

DbExtensionsで行う方法は次のとおりです。

var db = new Database("name=Northwind");

var query = db.From("products")
   .Take(2);
于 2014-06-01T01:29:01.543 に答える
0

DBExtensions を試す

DbExtensions クラス ライブラリ

SqlBuilder チュートリアル

お役に立てれば!

于 2013-05-10T17:43:56.700 に答える