美文网首页
EF+SqlServer/MySql(一)

EF+SqlServer/MySql(一)

作者: 醉酒的姑娘 | 来源:发表于2020-12-15 14:26 被阅读0次

EF搭建+生成数据库表

安装Nuget包


image.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文件始终复制


image.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


image.png

输入 PM> Add-Migration init
提示To undo this action, use Remove-Migration. 后 输入 PM> update-database更新数据库

image.png
  PM> Add-Migration init
  To undo this action, use Remove-Migration.
  PM> update-database
  Applying migration '20201214082145_init'.
  Done.

生成的数据库


image.png

相关文章

网友评论

      本文标题:EF+SqlServer/MySql(一)

      本文链接:https://www.haomeiwen.com/subject/poovgktx.html