当前位置: 首页 > 知识库问答 >
问题:

实体框架核心:DbContextOptionsBuilder不包含“usesqlserver”的定义,也不包含扩展方法“usesqlserver”

傅正阳
2023-03-14

我是EF core的新手,我正在尝试让它与我的ASP一起工作。NET核心项目。

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

问题代码在启动中。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");
        }

我在网上的所有研究都指向缺失的参考文献,但我似乎无法找出我缺失的是哪一个(见图)。

共有3个答案

陆俊迈
2023-03-14

安装以下NuGet包将解决您的问题

微软EntityFrameworkCore。SqlServer

安装包Microsoft. EntityFrameworkCore. SqlServer

梁宪
2023-03-14

使用Microsoft添加。实体框架核心

手动为我解决了问题

在这里找到的

编辑

对于dotnet core 3.1添加

微软。EntityFrameworkCore。SqlServer

祝高阳
2023-03-14

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

PM > Install-Package Microsoft.EntityFrameworkCore.SqlServer

然后,在导入命名空间后

using Microsoft.EntityFrameworkCore;

我们添加了数据库上下文:

services.AddDbContext<AspDbContext>(options =>
    options.UseSqlServer(config.GetConnectionString("optimumDB")));
 类似资料:
  • 我试图在IQueryable集合上使用Include扩展,但我有以下问题: 错误1'System.林克。IQueryable 我的代码: 方法返回-

  • 我有一个用。NET内核编写的API,并使用xUnit来测试它们。 我的测试用例如下: 我如何在这里检查从我的控制器方法调用返回的状态代码500。类似于 在调试时,我可以看到响应具有结果返回类型(Microsoft.aspnetcore.mvc.ObjectResult),该类型的为500。

  • 我在项目中使用Entity Framework Core 6.0,我有以下代码结构: (为简单起见,省略了其他字段) 我想加载所有游戏的所有数据,因此在我的服务类中,我会: 然而,它看起来很难看,占用了很多线。有没有办法简化这段代码? 另外,我不想在整个上下文中使用延迟加载,所以在这里它不是一个选项。

  • 我只能访问ICollection本身(listB)的属性,而不能访问其中包含的B对象的属性,这样我就可以在其中包含C对象。 我设法手动完成这一操作(这比我希望的要详细得多),分别加载对象并在其中包含我想要的内容,然后才将它们添加到a的列表中。然而,在我的现实生活中,我想在下面的级别中包含的属性也是用于集合的,所以这变得越来越不实用。有没有更简单、更优雅的方法呢?

  • 将只填充Enabled属性(下图),而不填充Application或CustomVariableGroup属性(下图)。我该怎么做?

  • 问题内容: 我在将我的框架与利用该框架的代码链接时遇到麻烦。具体来说,链接器无法找到泛型结构扩展的符号。 这是Optional的扩展之一: 如果代码是在应用程序的主要部分内编译的,则此方法在游乐场或应用程序中非常有用。但是,当我尝试将其编译到框架中时,应用程序(甚至框架的测试)会产生以下链接器错误: 架构i386的未定义符号:“ __ TFSq2orU__fGSqQ__FQQ”,引用自:Optio