7

Entity Framework 5 を使用すると、未使用の各パラメーターに null を追加する必要がないように、ストアド プロシージャをオプションのパラメーターと共に使用できますか?

私が使用しなければならないストアド プロシージャには 87 個のパラメーターがあり、そのうち 2 つだけが必須です。各呼び出しに 85 個の null を入れなければならないという考えは本当に嫌いです。

4

2 に答える 2

7

ObjectContext.ExecuteFunctionメソッド (DbContextはラッパーです) を使用ObjectContextして、いくつかのストアド プロシージャを実行し、パラメーターのリストを渡すことができます。

FooEntities db = new FooEntities();
var objectContext = ((IObjectContextAdapter)db).ObjectContext;
// create all parameters you need
var name = new ObjectParameter("Name", "Lazy");
var age = new ObjectParameter("Age", 29);

// call stored procedure with these two parameters only
var result = objectContext.ExecuteFunction<Result>("ProcedureName", name, age);

このコードを の拡張メソッドにラップできますDbContext

public static Result ProcedureName(this FooEntities db, name, age)
{
    // code above
}

使用法は次のようになります。var result = db.ProcedureName("Lazy", 29);

于 2013-06-20T18:06:37.547 に答える