交流QQ群:555913397
有什么问题可以加群大家一起交流
1.创建Ef Core的类库
CoreMvc.EntityFrameworkCore
可以根据自己的习惯创建类库
2.引用nuget包
1.Microsoft.EntityFrameworkCore
2.Microsoft.EntityFrameworkCore.Design
3.Microsoft.EntityFrameworkCore.Proxies
4.Microsoft.EntityFrameworkCore.Tools
5.Microsoft.EntityFrameworkCore.SqlServer
6.Microsoft.Extensions.Configuration.Json
一下子引用这么多nuget包大家别紧张,都是用得上的.
3.创建Ef上下文类
using CoreMvc.Core.Models;
using Microsoft.EntityFrameworkCore;
namespace CoreMvc.EntityFrameworkCore
{
public class CoreMvcDbContext : DbContext
{
//这里不再是接收一个数据库的连接字符串了
//这里的DbContextOptions我们通过上下文工厂类
public CoreMvcDbContext(DbContextOptions options) : base(options) { }
//这里是申明数据库实体
public DbSet<School> Schools { get; set; }
public DbSet<Student> Students { get; set; }
}
}
4.创建Ef上下文工厂类
通俗的来讲就是通过这个工厂类来配置ef core里面的相应数据库设置.
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using System;
namespace CoreMvc.EntityFrameworkCore
{
public class CoreMvcDbContextFactory : IDesignTimeDbContextFactory<CoreMvcDbContext>
{
public CoreMvcDbContext CreateDbContext(string[] args)
{
var basePath = AppDomain.CurrentDomain.BaseDirectory;
var builder = new DbContextOptionsBuilder<CoreMvcDbContext>();
var builders = new ConfigurationBuilder()
.SetBasePath(basePath)
.AddJsonFile("appsettings.json", true, true);
var configuration = builders.Build();
builder.UseLazyLoadingProxies().UseSqlServer(configuration.GetConnectionString("Default"));
return new CoreMvcDbContext(builder.Options);
}
}
}
5.创建数据库实体
using CoreMvc.Core.BaseModels;
namespace CoreMvc.Core.Models
{
public class School:Entity<int>
{
public string Name { get; set; }
}
}
using CoreMvc.Core.BaseModels;
using CoreMvc.Core.Enum;
using System;
namespace CoreMvc.Core.Models
{
public class Student : Entity<int>, IAuditCreateTime, IAuditLastModifaction
{
public string Name { get; set; }
public string Description { get; set; }
public int Age { get; set; }
public Sex Sex { get; set; }
public DateTime CreateTime { get; set; }
public DateTime LastModifaction { get; set; }
public int SchoolId { get; set; }
}
}
6.很重要的一步,需要给启动项目引用nuget包
1.Microsoft.EntityFrameworkCore.Design
如果不应用这个包,创建迁移会报错
7.测试效果
1.打开程序包管理控制台->默认项目选择CoreMvc.EntityFrameworkCore
2.输入迁移命令 add-migration Init //这里的Init可以随便输入任何有意义的文字
3.update-databse
到此整个EntityFramework Core就算是搭建完成了.