Entity Framework 5 を使用すると、未使用の各パラメーターに null を追加する必要がないように、ストアド プロシージャをオプションのパラメーターと共に使用できますか?
私が使用しなければならないストアド プロシージャには 87 個のパラメーターがあり、そのうち 2 つだけが必須です。各呼び出しに 85 個の null を入れなければならないという考えは本当に嫌いです。
Entity Framework 5 を使用すると、未使用の各パラメーターに null を追加する必要がないように、ストアド プロシージャをオプションのパラメーターと共に使用できますか?
私が使用しなければならないストアド プロシージャには 87 個のパラメーターがあり、そのうち 2 つだけが必須です。各呼び出しに 85 個の null を入れなければならないという考えは本当に嫌いです。
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);