首先说一下(DbFirst)数据库先行,
1.建好项目后通过 NuGet 安装所需依赖性:
(1)Microsoft.EntityFrameworkCore (2)Microsoft.EntityFrameworkCore.Design (3)Microsoft.EntityFrameworkCore.SqlServer (4)Microsoft.EntityFrameworkCore.SqlServer.Design (5)Microsoft.EntityFrameworkCore.Tools
可以右键项目通过管理NuGet程序包的方式安装,也可以通过命令安装(找到VS工具栏 ---> NuGet 包管理器 ---> 程序包管理控制台):
注意选择默认项目
Install-package Microsoft.EntityFrameworkCore Install-package Microsoft.EntityFrameworkCore.Tools Install-package Microsoft.EntityFrameworkCore.Design Install-package Microsoft.EntityFrameworkCore.SqlServer Install-package Microsoft.EntityFrameworkCore.SqlServer.Design
然后继续在程序包管理控制台再输入:
Scaffold-DbContext -Connection "Server=.;Database=EFCoreDemo;uid=sa;pwd=123" Microsoft.EntityFrameworkCore.SqlServer -OutputDir "Models"
-OutputDir "Models" 可以不写,如果加上了则会在项目中添加models文件夹,生成的context和实体类都放到models文件夹中
下面使用的是Code First
首先建好项目,安装依赖包
Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore
编写Studnet和Classinfo实体类
context上下文类需要继承DbContext
public class CodeFirstContext : DbContext { public CodeFirstContext() { } public CodeFirstContext(DbContextOptions options) : base(options) { } public DbSet<Student> Student { get; set; } public DbSet<ClassInfo> ClassInfo { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlServer("Server=.;Database=EFCoreCodeFirst;uid=sa;pwd=123"); } } protected override void OnModelCreating(ModelBuilder modelBuilder) { } }
基本上跟Ef6差不多的,写好之后测试一下就OK了:
using (CodeFirstContext db = new CodeFirstContext()) { db.Database.EnsureCreated(); //如果数据库不存在则创建,存在则不管 db.Add(new ClassInfo { ClassName = "三班" }); var result = db.SaveChangesAsync().Result; Console.WriteLine(result > 0 ? "成功加入" : "失败add"); }