You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Visual Studio 2017中ASP.NET Core无需命令行的EF上下文生成与脚手架问询

嘿,这个问题我刚好折腾过,给你详细拆解下:

ASP.NET Core + VS2017 数据库脚手架全攻略

1. 不用命令行,纯IDE就能生成DbContext!

VS2017完全支持图形化操作生成EF Core的DbContext和实体类,不用非得开Package Manager Console或者敲dotnet命令。步骤很简单:

  • 右键你的ASP.NET Core项目 → 选AddNew Scaffolded Item
  • 在弹出的窗口里,找到Data分类下的EF Core DbContext from Database(不同版本可能名字略有差异,但核心就是从现有数据库生成DbContext)
  • 点Add后会进入配置界面:
    • 可以直接选择已有的数据库连接,或者新建一个连接
    • 勾选你想要生成实体的表
    • 设置DbContext的名称和存放路径
    • 还能选要不要给实体类加注释、是否生成Fluent API配置等

跟着向导走下来,DbContext和对应实体类就自动生成了,全程不用碰命令行。

2. 命令行不是必须的!

真的不用纠结命令行,刚才说的可视化脚手架是官方原生支持的,底层和Scaffold-DbContext命令是一套逻辑,只是换了个图形化界面。如果你更习惯点鼠标操作,完全可以用这种方式替代命令行。

3. 当然可以在appsettings.json里放连接字符串!

这不仅可以,还是ASP.NET Core推荐的最佳实践呢。

  • 先在appsettings.json里配置:
"ConnectionStrings": {
  "MyBlogDb": "Server=localhost;Database=MyBlog;Trusted_Connection=True;MultipleActiveResultSets=true"
}
  • 用IDE脚手架的时候,在配置连接的步骤里,能看到“从appsettings.json中使用连接字符串”的选项,直接选你定义的键名就行;如果用命令行的话,也可以指定读取配置:
Scaffold-DbContext Name=ConnectionStrings:MyBlogDb Microsoft.EntityFrameworkCore.SqlServer
  • 后续注册DbContext的时候,也能直接从配置里读取,比如在Program.cs(.NET 6+)里:
builder.Services.AddDbContext<BlogDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("MyBlogDb")));

最后补个小提示:如果右键找不到脚手架选项,大概率是项目缺了必要的NuGet包,比如Microsoft.EntityFrameworkCore.Tools和对应数据库的驱动(比如SqlServer的话就是Microsoft.EntityFrameworkCore.SqlServer),先装上这些包再试,就能看到对应的选项了。

内容的提问来源于stack exchange,提问作者johnny

火山引擎 最新活动