我是新的EF核心,我试图让它与我的ASP工作。NET Core项目。

当我尝试配置DbContext使用config中的连接字符串时,我在startup.cs中得到了上述错误。我正在遵循这个教程。

有问题的代码在startup.cs中:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.SpaServices.Webpack;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;
using tracV2.models;
using tracV2.data;

namespace tracV2
{
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // Add framework services.
            services.AddMvc();

            services.AddSingleton<IConfiguration>(Configuration);

            string conn = Configuration.GetConnectionString("optimumDB");

            services.AddDbContext<tracContext>(options => options.usesqlserver(conn));
        }

如果我把UseSqlServer方法直接放到上下文中,它就会被识别出来:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;

namespace tracV2.data
{
    public class tracContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("myrealconnectionstring");
        }

我在网上的所有研究都指向了缺失的参考文献,但我似乎找不到我缺失的是哪一本(见图)。


当前回答

添加 使用Microsoft.EntityFrameworkCore;

手动解决了我的问题

在这里找到

编辑……

为dotnet核心3.1添加

Microsoft.EntityFrameworkCore.SqlServer

其他回答

首先,我们安装Microsoft.EntityFrameworkCore.SqlServer NuGet包:

PM > Install-Package Microsoft.EntityFrameworkCore.SqlServer

然后,在导入命名空间之后

using Microsoft.EntityFrameworkCore;

我们添加数据库上下文:

services.AddDbContext<AspDbContext>(options =>
    options.UseSqlServer(config.GetConnectionString("optimumDB")));

安装包:

**Microsoft.EntityFrameworkCore.SqlServer**

然后加上你班级的顶部:

**Microsoft.EntityFrameworkCore;**

这对我来说很有效

项目-> ManageNugetPackages ->浏览->搜索“Microsoft.EntityFrameworkCore”。并安装或更新。

我有这个问题,似乎我没有添加所需的NuGet包,虽然我认为我已经这样做了,一定要检查他们,一个接一个。

按照下面的步骤进行。

为实体框架核心安装实体框架核心设计和SQL Server数据库提供程序:

dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer

导入实体框架核心:

using Microsoft.EntityFrameworkCore;

然后配置DbContext:

var connectionString = Configuration.GetConnectionString("myDb");
services.AddDbContext<MyDbContext>(options => 
    options.UseSqlServer(connectionString)
);