Entity Framework with optional parameters?

前端 未结 2 575
我在风中等你
我在风中等你 2021-01-18 03:59

Using Entity Framework 5 is it possible to use a stored proc with optional parameters such that you do not have to add a null for each unused parameter?

The stored p

2条回答
  •  生来不讨喜
    2021-01-18 04:55

    You can use ObjectContext.ExecuteFunction method (DbContext is a wrapper over ObjectContext) to execute some stored procedure and pass list of parameters:

    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("ProcedureName", name, age);
    

    You can wrap this code into extension method for your DbContext:

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

    Usage will be like: var result = db.ProcedureName("Lazy", 29);

提交回复
热议问题