Dapper の優れたパフォーマンスと、その使用方法のサンプルをいくつか見ました。
それを使用して IQueryable データを提供し、ODATA を使用して UI レイヤーと統合してデータを UI (グリッド、リストなど) に転送できるかどうか疑問に思っていました。
ODATA を使用してクエリを実行するために、IEnumerable の代わりに Dapper オブジェクト AsQueryable を返す方法はありますか?
Dapper の優れたパフォーマンスと、その使用方法のサンプルをいくつか見ました。
それを使用して IQueryable データを提供し、ODATA を使用して UI レイヤーと統合してデータを UI (グリッド、リストなど) に転送できるかどうか疑問に思っていました。
ODATA を使用してクエリを実行するために、IEnumerable の代わりに Dapper オブジェクト AsQueryable を返す方法はありますか?
いいえ、そうではありません。必要に応じて、任意のシーケンスを .AsQueryable() でラップできますが、LINQ-to-Objects を使用するだけです。Dapper は意図的にシンプルです。それはほとんど何もしようとしませんが、何をしようとしているのか: それはよくできています (たとえ私がそう言ったとしても)。適切な IQueryable インターフェイスは、ダッパーの正反対です...
OData で Dapper を使用するには、Get(ODataQueryOptions<SpotView> queryOptions)
パラメーターをインターセプトして解析し、そこから Dapper の where 句を作成する必要があります。また、WebApiConfig.cs のその他の OData 設定も考慮する必要があります。
config.AddODataQueryFilter(new EnableQueryAttribute()
{
...
});
ただし、EF で MySqlConnection を使用することもでき、上記の解析で車輪を再発明する必要はありません。ただし、Dapper のパフォーマンスが、既に異なる実行が組み込まれている EF のような完全な ORM を使用するよりも重要であるかどうかは、ユーザーの判断に委ねられます。