Entity Framework怎么调用存储过程

 我来答
百度网友07e0c9f0254
2016-10-25 · 超过34用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:47.8万
展开全部
SqlParameter[] parms = new SqlParameter[2];
SqlParameter id = new SqlParameter("ID", "11a44466-6d9c-4c7e-b9e4-5a1369061119");
id.SqlDbType=SqlDbType.NVarChar;
id.Size = 128;
parms[0] = id;
var outParam = new SqlParameter();
outParam.ParameterName = "Name";
outParam.SqlDbType = SqlDbType.VarChar;
outParam.Size = 64; //必须填写正确,否则会有这种异常:{"String[1]: the Size property has an invalid size of 0."}
outParam.Direction = ParameterDirection.Output;
parms[1]=outParam;

//当有这样异常时,"... A member of the type ... does not have a corresponding column in the data reader with the same name"
//是存储过程返回的字段名与对应Model的属性名对不上, 解决加法是在存储过程中取别名与Model的属性同名
var result = db.Database.SqlQuery<Category>("P_GetCategoryByID @ID,@Name output", parms);

string title = outParam.Value as string;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式