public void TestStoreProc() { using (EF6_Demo.EFTestContext db = new EF6_Demo.EFTestContext()) { db.Database.Log = Console.WriteLine; System.Data.SqlClient.SqlParameter[] para_list = new System.Data.SqlClient.SqlParameter[2]; para_list[0] = new System.Data.SqlClient.SqlParameter("@msg", System.Data.SqlDbType.NVarChar, 50); para_list[0].Value = "hello"; para_list[0].Direction = System.Data.ParameterDirection.Input; para_list[1] = new System.Data.SqlClient.SqlParameter("@reply", System.Data.SqlDbType.NVarChar, 50); para_list[1].Direction = System.Data.ParameterDirection.Output; var query = db.Database.ExecuteSqlCommand("Test1 @msg,@reply output", para_list); Console.WriteLine(para_list[1].Value); } }
代码中的“output”关键词不能丢失
下面是存储过程脚本
--测试Entity Framework 执行存储过程及返回值的实例过程;2017-8-2 16:26:01 CREATE PROC Test1 @msg NVARCHAR(50) , @reply NVARCHAR(50) OUTPUT AS SET @reply = '收到信息啦' + @msg; RETURN 1; GO