使用Entity Framework执行后期绑定存储过程

时间:2012-06-13 20:07:59

标签: c# entity-framework

我正在寻找一种方法来做这样的事情:

var  db = new DALEntities();
db.StoredProcedureToCall();

但是,我希望它是动态的,因为在我将一些其他数据发送给我之前,我不会知道WHICH的调用。

var db = new DALEntities();
db[tSproc]();

我知道我可以用switch语句测试tSproc的值,然后按上面的方式调用,但是有更优雅的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

将光标放在db.StoredProcedureToCall()上,然后按F12。您将看到EF生成的代码已经是动态的。

根据您使用的EF版本,它将类似于:

public ObjectResult<OrderDetail> GetDetailsForOrder
 (Nullable<global::System.Int32> orderid)
{
  ObjectParameter orderidParameter;
  if (orderid.HasValue)
  {
    orderidParameter = new ObjectParameter("orderid", orderid);
  }
  else
  {
    orderidParameter = new ObjectParameter("orderid", typeof(global::System.Int32));
  }
  return base.ExecuteFunction<OrderDetail>("GetDetailsForOrder", orderidParameter);
}

只需编写代码即可。你不需要开关。