编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

EntityFrameworkCore CodeFirst创建数据库

wxchong 2024-07-11 01:07:56 开源技术 7 ℃ 0 评论

最近辞职了,在家学习下新技术,以前虽然用过EntityFramework但是EntityFrameworkCore还是第一次用,虽然目前看区别不是很大,但还是想分享一下学习成果,有什么不对的地方,还请大家多指教.

第一步,先创建WebApi项目






第二步,创建类库MyEntityFrameworkCore



然后添加这个四个NuGet包

1.Microsoft.EntityFrameworkCore

2.Microsoft.EntityFrameworkCore.SqlServer

3.Microsoft.EntityFrameworkCore.Tools

4.Microsoft.EntityFrameworkCore.Design

然后创建数据库实体(UserInfo)

namespace MyEntityFrameworkCore.Entity
{
   [Table("UserInfo")]
    public class UserInfo
    {
        [Key]
        public int Id { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>
        public string? UserName { get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        public string? Password { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public bool Sex { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }
}

然后创建数据库上下文MyDbContext

namespace MyEntityFrameworkCore.Context
{
    /// <summary>
    /// 数据库上下文
    /// </summary>
    public class MyDbContext: DbContext
    {
        public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
        {

        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //数据库连接字符串
            optionsBuilder.UseSqlServer("Data Source=(local);Initial Catalog=MyTestNet2;User Id=sa;Password=123456");
        }
      
       public virtual DbSet<UserInfo> UserInfo { get; set; }
    }
}

第三步,也是最关键的一步创建MyDbContextFactory类(不然无法生成数据库)

namespace MyEntityFrameworkCore.Context
{
    public class MyDbContextFactory : IDesignTimeDbContextFactory<MyDbContext>
    {
        public MyDbContext CreateDbContext(string[] args)
        {
            DbContextOptionsBuilder<MyDbContext> builder = new DbContextOptionsBuilder<MyDbContext>();
            builder.UseSqlServer("Data Source=(local);Initial Catalog=MyTestNet2;User Id=sa;Password=123456");
            MyDbContext db = new MyDbContext(builder.Options);
            return db;
        }
    }
}

第四步,生成数据库

好了,到这我们就可以生成数据库了

1.打开"打开程序包管理器控制台",并把类库MyEntityFrameworkCore设置为启动项目,并设置为控制台的默认项目

然后在控制台输入 Add-Migration Init 并回车

会弹出生成的表结构信息

确认无误后在控制台输入update-database Init 回车,然后我们的数据库就生成成功了



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表