我正在寻找一种方法来做这样的事情:
var db = new DALEntities();
db.StoredProcedureToCall();
但是,我希望它是动态的,因为在将其他一些数据传递给我之前,我不会知道要拨打哪个电话。
var db = new DALEntities();
db[tSproc]();
我知道我可以有一个 switch 语句测试 tSproc 的值,然后像上面那样调用,但是有没有更优雅的方法?
谢谢
我正在寻找一种方法来做这样的事情:
var db = new DALEntities();
db.StoredProcedureToCall();
但是,我希望它是动态的,因为在将其他一些数据传递给我之前,我不会知道要拨打哪个电话。
var db = new DALEntities();
db[tSproc]();
我知道我可以有一个 switch 语句测试 tSproc 的值,然后像上面那样调用,但是有没有更优雅的方法?
谢谢
将光标放在上面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);
}
只需类似地编写代码。你不需要开关。