После обновления некоторых наших библиотек классов до .NET Standard 2.0 System.Data.SqlClient исчез, и теперь нам нужно использовать Microsoft.Data.SqlClient в этих проектах.
Однако теперь мы видим эту ошибку при вызове хранимой процедуры:
Коллекция SqlParameterCollection принимает только значения, отличные от NULL. Объекты типа SqlParameter, а не объекты SqlParameter
Это отлично сработало в System.Data.SqlClient.
Я поискал в Интернете и увидел, что многие люди говорят об исправлении этой ошибки после простого использования Microsoft.Data.SqlClient, но поскольку именно это создает мою проблему, я не уверен, куда идти дальше.
public int GetStuff(long memberId, DateTime start, DateTime end)
{
var idParameter = new SqlParameter("@intID", memberId);
var startMonthParameter = new SqlParameter("@intMonth1", start.Month);
var endMonthParameter = new SqlParameter("@intMonth2", end.Month);
var startYearParameter = new SqlParameter("@intYear", start.Year);
return ExecuteStoreProcedure("sp_GetStuff", idParameter, startMonthParameter, endMonthParameter, startYearParameter);
}
private T ExecuteStoreProcedure(string procedureName, params SqlParameter[] sqlParamaters)
{
var procedure = $"{procedureName} {string.Join(", ", sqlParamaters.Select(p => p.ParameterName))}";
var parameters = sqlParamaters.ToArray();
return Database.SqlQuery(procedure, parameters).First();
}
Подробнее здесь: https://stackoverflow.com/questions/780 ... bjects-not