我把我的项目从ASP.NETCore2.2迁移到ASP.NETCore3.0。现在我遇到了这个异常。在ASP.NETCore2.2中,它使用的是FromSql()
;现在它使用FromSqlRaw()
。我正在使用实体框架核心调用我的过程。
SqlParameter Username = new SqlParameter
{
ParameterName = "USERNAME",
SqlDbType = SqlDbType.NVarChar,
Value = user.Username,
Direction = ParameterDirection.Input,
Size = 50
};
SqlParameter Password = new SqlParameter
{
ParameterName = "PASSWORD",
SqlDbType = SqlDbType.NVarChar,
Value = user.Password,
Direction = ParameterDirection.Input,
Size = 50
};
SqlParameter msgOut = new SqlParameter
{
ParameterName = "MSG",
SqlDbType = SqlDbType.NVarChar,
Direction = ParameterDirection.Output,
Size = 1000
};
SqlParameter statusOut = new SqlParameter
{
ParameterName = "STATUS",
SqlDbType = SqlDbType.Int,
Direction = ParameterDirection.Output
};
var sql = @"EXEC PRC_USERS_LOGIN
@USERNAME,
@PASSWORD,
@MSG OUT,
@STATUS OUT";
Users resultUser = new Users();
resultUser = ctx.Users.FromSqlRaw(sql, Username, Password, msgOut, statusOut)
.FirstOrDefault();
3条答案
按热度按时间toiithl61#
更换后此代码工作正常
到
以及
到
sd2nnvve2#
通过将使用System.Data.SqlClient更改为使用Microsoft.Data.SqlClient进行修复
https://github.com/aspnet/EntityFrameworkCore/issues/16812#issuecomment-516013245
piv4azn73#
反之亦然:您必须将
System.Data.SqlClient.SqlParameters
与EF 6一起使用,* 而不是 *Microsoft.Data.SqlClient.SqlParameters
。此外,请确保使用
Microsoft.SqlServer.Server.SqlDataRecords
,而不是Microsoft.Data.SqlClient.Server.SqlDataRecords
。