本节目标:建立数据库ZhaoPin,添加一张职位表Position; 使用VS建立项目,实现对表Position的增删改查.
题外: 如果代码缩进在粘贴代码后出现错误,请按 CTRL-K-D 进行更正。
说明:先手工建数据库. 根据数据库生成实体.
1.创建数据库ZhaoPin,是手工建立的数据表
2.VS新建项目 ZhaoPin 采用 MVC模式.
生成实体类和数据上下文.
Scaffold-DbContext "Server=.;Database=ZhaoPin;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Scaffold-DbContext "Server=.;Database=ZhaoPin;Trusted_Connection=false;User Id=zp;Pwd=zp635241;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
生成指定的实体
Scaffold-DbContext "Server=.;Database=ZhaoPin;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables 表名1,表名2
覆盖之前生成的加 -f
Scaffold-DbContext "Server=.;Database=ZhaoPin;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f
帐号密码方式登录数据库,增加账户密码
Trusted_Connection= false; User Id=sa;Pwd=sa;
MultipleActiveResultSets=true 可以使数据库连接复用。这样就不怕数据库的连接资源被耗尽了。
命令的方式生成经常会失败. build failed
发布问题:
Asp.Net Core发布到IIS下,需要.NET Core Windows Server Hosting 的支持。
官方下载地址:https://www.microsoft.com/net/download/core#/runtime 下载 runtime的
发布网站没有视图问题 在 项目名.csproj 添加 <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
发现有个VS扩展工具不错. EF Core Power Tools.根据数据库直接生成实体类.功能比较多,速度快.
3.有了实体类,和数据上下文,修改startup.cs 依赖注入和连接字符串的设置.
startup.cs需要引入2个命名空间
using ZhaoPin.Models; using Microsoft.EntityFrameworkCore;
方法一:数据注入和连接字符串都在startup.cs中.
var DbContext= @"Server=.;Database=ZhaoPin;Trusted_Connection=True;ConnectRetryCount=0"; services.AddDbContext<ZhaoPinContext>(options => options.UseSqlServer(ZhaoPinContext));
方法二:数据库连接放在appsettings 中的方法
更新startup.cs
services.AddDbContext<ZhaoPinContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("ZhaoPinContext")));
更新appsettings.json
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "ZhaoPinContext": "Server=.;Database=ZhaoPin;Trusted_Connection=True;MultipleActiveResultSets=true" } }
此时基本配置已经完成,下面添加控制器 名称为 Positions.
添加控制器 选择
完成后,为了方便调试.我把端口号固定5000
完成后,项目已经可以正常运行.输入网址http://localhost:5000/Positions 即可访问
为了更好的调试.修改下默认路由让http://localhost:5000即可访问.
CodeFirst
2.首先创建好实体类,含链接字符串.
1.Add-Migration 启用
2.Enable-Migrations 生成数据cs文件.
3.updata-database 更新数据库,若报错再执行加-force
二.创建好实体与链接,配置Program文件.自动创建数据库.
public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var context = services.GetRequiredService<ZPContext>(); // using ContosoUniversity.Data; context.Database.EnsureCreated(); } catch (Exception ex) { var logger = services.GetRequiredService<ILogger<Program>>(); logger.LogError(ex, "An error occurred creating the DB."); } } host.Run(); }