EF搭建+生成数据库表
安装Nuget包
![](https://img.haomeiwen.com/i5101539/1f7bec4c0f235642.png)
添加实体
父类EntityBase
namespace Model.Table
{
public class EntityBase
{
/// <summary>
/// 创建时间
/// </summary>
[Display(Name = "创建时间")]
public DateTime? CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 创建人
/// </summary>
[Display(Name = "创建人")]
[StringLength(32)]
public string CreateUser { get; set; }
/// <summary>
/// 状态0-删除,1-正常,2-禁用,3-待审核
/// </summary>
[Display(Name = "状态0-逻辑删除,1-正常,2-禁用,...")]
public virtual int? Status { get; set; } = 2;
/// <summary>
/// 排序
/// </summary>
[Display(Name = "排序")]
public int? Sort { get; set; } = 0;
/// <summary>
/// 备注
/// </summary>
[Display(Name = "备注")]
[StringLength(200)]
public string Remark { get; set; } = "";
}
}
实体类user
namespace Model
{
[Table("User")]
public class User : EntityBase
{
[Key]
[StringLength(32)]
public string ID { get; set; }
[Display(Name = "用户名")]
[Required]
[StringLength(32)]
public string UserName { get; set; }
[Display(Name = "密码")]
[Required]
[StringLength(255)]
public string Password { get; set; }
[Display(Name ="昵称")]
[StringLength(32)]
public string NikeName { get; set; }
[Display(Name ="头像")]
[StringLength(255)]
public string Avatar { get; set; }
}
}
创建DbContext的派生类EFDbContext
namespace Model
{
public class EFDbContext:DbContext
{
#region 构造方法
public EFDbContext(DbContextOptions<EFDbContext> options):base(options) {
}
public EFDbContext() { }
#endregion
/// <summary>
/// 表对象
/// </summary>
public virtual DbSet<User> Users { get; set; }
//重写OnConfiguring(DbContextOptionsBuilder optionsBuilder)
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
base.OnConfiguring(optionsBuilder);
if (!optionsBuilder.IsConfigured) {
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
IConfigurationRoot configuration = builder.Build();
//var mysqlConn = configuration.GetSection("ConnectionStrings:Mysql").Value;
var sqlserverConn = configuration.GetSection("ConnectionStrings:SqlServer").Value;
optionsBuilder.UseSqlServer(sqlserverConn);
}
}
}
}
如果没有构造数据库链接字符串的话则到appsettings.json中去取,注意将appsettings.json文件始终复制
![](https://img.haomeiwen.com/i5101539/3b1ec9eab3f43c19.png)
appsettings.json
{
"ConnectionStrings": {
"SqlServer": "Server =.;Database =BlogTest;User ID =sa;Password =1234@qwer;Trusted_Connection = False;",
"Mysql": "server=127.0.0.1;database=eftest;userid=root;pwd=123456;port=3306;sslmode=none;"
}
}
数据迁移
打开PM选择默认项目Model
![](https://img.haomeiwen.com/i5101539/aec658d6d02bd2ba.png)
输入 PM> Add-Migration init
提示To undo this action, use Remove-Migration. 后 输入 PM> update-database更新数据库
![](https://img.haomeiwen.com/i5101539/56d163b9cfb086c8.png)
PM> Add-Migration init
To undo this action, use Remove-Migration.
PM> update-database
Applying migration '20201214082145_init'.
Done.
生成的数据库
![](https://img.haomeiwen.com/i5101539/4bcb07fe5d65d2e6.png)
网友评论