Как использовать хранимые процедуры с SqlParameters в EF Core 3.0 - PullRequest
0 голосов
/ 28 сентября 2019

Я попробовал следующее

var p = new SqlParameter("Option", "AUTHENTICATE");
var user = _context.Set<User>().FromSqlRaw("EXECUTE dbo.spGeneral_Authenticate @Option", p).ToList();
var user = _context.Set<User>().FromSqlRaw("EXECUTE dbo.spGeneral_Authenticate @Option=@Option", p).ToList();

и

SqlParameter[] ps = new SqlParameter[1];
ps[0] = new SqlParameter("Option", "AUTHENTICATE");
var user = _context.Set<User>().FromSqlRaw("EXECUTE dbo.spGeneral_Authenticate @Option", ps).ToList();
var user = _context.Set<User>().FromSqlRaw("EXECUTE dbo.spGeneral_Authenticate @Option=@Option", ps).ToList();

Ошибка:

InvalidCastException: SqlParameterCollection принимает толькообъекты непустого типа SqlParameter, не объекты SqlParameter.

1 Ответ

1 голос
/ 30 сентября 2019

InvalidCastException: SqlParameterCollection принимает только ненулевые объекты типа SqlParameter, а не объекты SqlParameter.

Для указанной ошибки SqlParameter должен быть Microsoft.Data.SqlClient.SqlParameter не System.Data.SqlClient.SqlParameter

...