.net core 3.1 EF Code First 实例
准备工作
1.创建Models以及Repository.SqlServer类库
2.创建WebHost网站程序(创建webHost只是为了后续web站点做准备)
3.Models引用 Microsoft.EntityFrameworkCore
4.Repository.SqlServer 引用 Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Tools
5.WebHost 引用 Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools
6.WebHost站点中 appsettings.json 增加配置 ConnectionStrings 的配置
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ConnectionStrings": { "Default": "Server=.;DataBase=DefaultDB;uid=sa;pwd=123123" }, "AllowedHosts": "*" }
开始
1.在Models中创建实体模型,BaseModel中只是实现了统一Guid的主键
namespace Models { public class User: BaseModel { /// <summary> /// 用户名 /// </summary> [Display(Name = "用户名")] public string UserName { get; set; } } }
2.在Repository.SqlServer中添加Mapping类型
namespace Repository.SqlServer.Mapping { public class UserMap : EntityMappingConfiguration<User> { public override void Map(EntityTypeBuilder<User> b) { // 映射表 b.ToTable("TD_User"); // 申明主键 b.HasKey(p => p.Id); // 字段映射 b.Property(c => c.Id).HasColumnName("Id").HasColumnType("varchar").HasMaxLength(36).IsRequired(); b.Property(p => p.UserName).HasColumnName("UserName").HasColumnType("nvarchar").HasMaxLength(100).IsRequired(); } } }
统一配置实体类型参考链接 https://stackoverflow.com/questions/26957519/ef-core-mapping-entitytypeconfiguration#comment46244976_26957519
3.增加DefaultDBContext类型
namespace Repository.SqlServer { public class DefaultDBContext : DbContext { public DefaultDBContext(DbContextOptions<YangDBContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.AddEntityConfigurationsFromAssembly(GetType().Assembly); } } }
4.WebHost站点中 Startup.cs 文件增加数据库连接池
public void ConfigureServices(IServiceCollection services) { services.AddDbContextPool<DefaultDBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));//配置数据库连接字符串 }
获取配置文件的信息参考:https://jingyan.baidu.com/article/ac6a9a5eb9bcf46b643eac5d.html
5.执行如下命令,默认项目设置为Repository.SqlServer所在项目
PM> Add-Migration FirstMigration
PM> Update-Database -Verbose
浙公网安备 33010602011771号