实体框架核心-将存储过程与输出参数一起使用 [英] Entity Framework Core - Using Stored Procedure with output parameters
问题描述
我正在尝试将存储过程与新的Entity Framework Core结合使用。我需要尽快开始一个新项目,它将是ASP.Net 5,但是不确定Entity Framework是否适合该工作。该应用程序将每分钟触发几个存储过程,我需要输出参数。
I'm trying to use stored procedures with new Entity Framework Core. I need to start new project soon which will be ASP.Net 5, but not sure if Entity Framework will fit for the job. The application will be triggering several stored procedures per minute and I need output parameters. Will EF be good for this or should I use ADO.Net?
我尝试了FromSql和database.ExecuteSqlCommand但没有运气。
I have tried FromSql and database.ExecuteSqlCommand but no luck.
using (AppDbContext db = factory.Create())
{
var in1 = new SqlParameter
{
ParameterName = "ParamIn1",
DbType = System.Data.DbType.Int64,
Direction = System.Data.ParameterDirection.Input
};
var in2 = new SqlParameter
{
ParameterName = "ParamIn2",
DbType = System.Data.DbType.String,
Direction = System.Data.ParameterDirection.Input
};
var out1 = new SqlParameter
{
ParameterName = "ParamOut1",
DbType = System.Data.DbType.Int64,
Direction = System.Data.ParameterDirection.Output
};
var out2 = new SqlParameter
{
ParameterName = "ParamOut2",
DbType = System.Data.DbType.String,
Direction = System.Data.ParameterDirection.Output
};
var result = db.Database.ExecuteSqlCommand("exec spTestSp", in1, in2, out1, out2);
}
推荐答案
应该可以,但是我相信您还需要在命令语句中包括参数名称和 OUT
关键字
It should work, but I believe you also need to include the parameter names and the OUT
keyword in the command statement
var sql = "exec spTestSp @ParamIn1, @ParamIn2, @ParamOut1 OUT, @ParamOut2 OUT";
var result = db.Database.ExecuteSqlCommand(sql, in1, in2, out1, out2);
var out1Value = (long) out1.Value;
var out2Value = (string) out2.Value;
这篇关于实体框架核心-将存储过程与输出参数一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!