2016-05-23 3 views
3

C#のLEADまたはLAG SQL関数を使用できますか? SqlCommandオブジェクト C#コードのSQLリードおよびラグ関数

経由でSQLへ

  1. LINQの
  2. Entity Frameworkの
  3. ダイナミックLINQの
  4. SQLFunctionsクラス
  5. マニュアルTSQL私が知っている:

    方法の私の好みがあります方法5で行うことができますが、1から4はどうですか? (githubの上の)MoreLinqプロジェクトに

+0

http://stackoverflow.com/a/21767411

  • MSDNには、そのシーケンス機能一般的に限られているサポートをヒント/ 1132334は、1と3が不可能であることを意味する(まだ)。しかし、この答えはすでに2年以上経過していますので、最新の.NETフレームワークの研究は努力の価値があるようです – dlatikay

  • 答えて

    2

    ルック:ありhttp://morelinq.github.io

    、鉛や遅れが拡張として実装されています:

    public static IEnumerable<TResult> Lag<TSource, TResult>(
        this IEnumerable<TSource> source, 
        int offset, 
        TSource defaultLagValue, 
        Func<TSource, TSource, TResult> resultSelector 
    ) 
    

    参照:https://morelinq.github.io/2.0/ref/api/html/M_MoreLinq_MoreEnumerable_Lag__2_1.htm

    EDIT:これはオブジェクトへのLINQですのみ。したがって、SQLデータソースに適用すると、すべての行がフェッチされ、データベース外で計算されます。これは、OPが期待するものではありません。

    研究結果は、項目1,2,3および4のために "それは不可能です" を言わない:

    +0

    私はそれを見ましたが、オブジェクトへのlinqだけのようです。私は、最新のベータ版をダウンロードしてから、SQLからテーブル全体を取り出してから、メモリの遅れ/リードを実行します。 – OrdinaryOrange

    関連する問題