我正在寻找一种方法来做这样的事情:
var db = new DALEntities();
db.StoredProcedureToCall();
但是,我希望它是动态的,因为在我将一些其他数据发送给我之前,我不会知道WHICH的调用。
var db = new DALEntities();
db[tSproc]();
我知道我可以用switch语句测试tSproc的值,然后按上面的方式调用,但是有更优雅的方法吗?
由于
答案 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);
}
只需编写代码即可。你不需要开关。