DbParameterCollection不包含AddWithValue的定义

时间:2017-05-12 21:33:11

标签: c# asp.net-core entity-framework-core

在以下代码的最后一行获取上述错误。我正在使用EF Core 1.1。试图遵循this建议。

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient; //Visual Studio had greyed out this line suggesting this as unnecessary.

var conn = _context.Database.GetDbConnection();

var cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "MySproc";
cmd.Parameters.AddWithValue("@MyParameter", 42);

3 个答案:

答案 0 :(得分:6)

这是使用System.Data.Common API的等效代码。 (它可以与任何ADO.NET提供程序一起使用。)

var parameter = cmd.CreateParameter();
parameter.ParameterName = "@MyParameter";
parameter.Value = 42;

cmd.Parameters.Add(parameter);

答案 1 :(得分:1)

在dotnet core 3+中,运行命令中断。要解决此问题,请将System.Data.SqlClient更改为Microsoft.Data.SqlClient

答案 2 :(得分:0)

为System.Data.SqlClient添加引用并将DbConnection实例强制转换为SqlConnection。