我是 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");
}
我所有的在线研究都指向缺少的参考文献,但我似乎无法找出我缺少的是哪一个(see image)。
首先,我们安装Microsoft.EntityFrameworkCore.SqlServerNuGet 包:
PM > Install-Package Microsoft.EntityFrameworkCore.SqlServer
然后,在导入命名空间后,使用
using Microsoft.EntityFrameworkCore;
我们添加数据库上下文:
services.AddDbContext<AspDbContext>(options =>
options.UseSqlServer(config.GetConnectionString("optimumDB")));
using Microsoft.EntityFrameworkCore;
手动解决了我的问题
Found that here Edit...对于 dotnet 核心 3.1 添加
Microsoft.EntityFrameworkCore.SqlServer
请按照以下步骤操作。
安装实体框架核心设计和实体框架核心的 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)
);
安装的 NuGet 包将解决您的问题
Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.SqlServer
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(27条)