0

以下の EF linq を考えると、ストアド プロシージャ usp_GetTestRecords() 内のすべてのレコードが検出され、フィルター処理されますか?

    TestRecordsDBEntities dataContext = new TestRecordsDBEntities();
    var tests = dataContext.usp_GetTestRecords();
    var filtered = tests.Where(x => x.GroupId == groupId)
        .OrderByDescending(y => y.Name)
        .ToList();
4

3 に答える 3

1

別の方法として、ストアド プロシージャではなく、テーブル値関数の作成を検討することもできます。ここでの利点は、関数の結果セットをサーバー側の他のテーブルと結合できることです。欠点は、関数内で実行できる操作が制限されていることと、インデックス付きビューで可能だった関数の結果のインデックスにデータベースがアクセスできないことです。

EF で TVS を使用する方法の詳細については、http://blogs.msdn.com/b/efdesign/archive/2011/01/21/table-valued-function-support.aspxを参照してください。

于 2013-08-15T17:42:19.147 に答える