Anj*_*ali 3 c# entity-framework entity-framework-core
我正在尝试在 Entity Framework Core 中使用存储过程。执行存储过程时,我传递两个输入参数和一个输出参数。我不断收到此错误:
SqlParameterCollection 仅接受非空 SqlParameter 类型对象,而不接受 SqlParameter 对象。
这是我的代码:
public string InsertCardsData(DateTime RecordingStartDate, DateTime RecordingEndDate)
{
try
{
// DateTime DRecEndDate = Convert.ToDateTime(RecordingEndDate);
DateTime DRecEndDate = RecordingEndDate.AddDays(1);
var RecordStartDate = new SqlParameter
{
ParameterName = "RecordingStartDate",
Value = RecordingStartDate,
Direction = ParameterDirection.Input
};
var RecordEndDate = new SqlParameter
{
ParameterName = "RecordingEndDate",
Value = DRecEndDate,
Direction = ParameterDirection.Input
};
var RecordCount = new SqlParameter
{
ParameterName = "RecLoadCount",
Direction = ParameterDirection.Output
};
var SQL = "Exec Recload_InsertPrimeExtract @RecordingStartDate, @RecordingEndDate, @RecLoadCount OUT";
var result = _context.Database.ExecuteSqlRaw(SQL, RecordStartDate, RecordEndDate, RecordCount);
var RecordCountValue = RecordCount.Value.ToString();
return RecordCountValue;
}
catch (Exception ex)
{
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
我将放置一个有意义的 catch 语句,但现在,我在 catch 语句中放置一个断点,并发生上述错误。
任何帮助将不胜感激。
AAA*_*ddd 11
您的问题很可能是由于EF Core 3 中的重大更改引起的,通过声明using
System.Data.SqlClient何时应该using Microsoft.Data.SqlClient
为什么
Microsoft.Data.SqlClient是 SQL Server 未来的旗舰数据访问驱动程序,System.Data.SqlClient不再是开发的重点。一些重要功能(例如始终加密)仅在Microsoft.Data.SqlClient.
此外
如果您的代码直接依赖于
System.Data.SqlClient,则必须将其更改为引用Microsoft.Data.SqlClient;由于这两个包保持了非常高程度的 API 兼容性,因此这应该只是简单的包和命名空间更改。
github上的相关问题
| 归档时间: |
|
| 查看次数: |
5268 次 |
| 最近记录: |