EFCore CodeFirst与DbFirst生成

EFCore CodeFirst与DbFirst都要NuGet

Microsoft.EntityFrameworkCore.SqlServer 核心程序包,封装了关键的核心代码,使用EF必须引用这个包

Microsoft.EntityFrameworkCore.Design 设计包,用于在命令行工具下EF Core开发的工具套件

Microsoft.EntityFrameworkCore.Tools 用于数据库的生成、迁移、生成表等

EFCoreFirst使用流程

1.创建数据库实体映射类

    public class Blog
    {
        public int BlogId { get; set; }
        [Required]
        [MaxLength(16)]
        public string Url { get; set; }
        public List<Post> Posts { get; } = new List<Post>();
    }
    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        [Column(TypeName = "date")]
        public DateTime CreateDate { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }

2.新建一个继承DbContext的类作用是配置数据连接、操作数据库表等信息

    public class BloggingContext: DbContext
    {
        /// <summary>
        /// Blogs表的操作属性
        /// </summary>
        public DbSet<Blog> Blogs { get; set; }

        /// <summary>
        /// Posts
        /// </summary>
        public DbSet<Post> Posts { get; set; }

        /// <summary>
        /// 配置数据连接信息
        /// </summary>
        /// <param name="optionsBuilder"></param>
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySql("你的数据库连接字符串");
            base.OnConfiguring(optionsBuilder);
        }
    }

3.添加数据库迁移文件:程序包管理控制台输入:

Add-Migration InitialCreate    //InitialCreate是生成迁移文件的文件名,执行此命令后,会生成Migrations文件夹及相关的迁移文件
Update-Database   //生成数据库
Script-Migration   //生成快照文件

4.增、删、改、查

EFCore DbFist流程

1.在程序包包管理器控制台 中执行以下语句生成 实体类

Scaffold-DbContext "Data Source=WAYLIPC;Initial Catalog=Produce_Mac_Sn;User ID=sa;Password=123456;Integrated Security=True;Encrypt=False;" Microsoft.EntityFrameworkCore.SqlServer -context EfCoreContext -contextdir Data -outputdir Models

参数说明:

-OutputDir *** 实体文件所存放的文件目录
-ContextDir *** DbContext文件存放的目录
-Context *** DbContext文件名
-Schemas *** 需要生成实体数据的数据表所在的模式
-Tables *** 需要生成实体数据的数据表的集合
-DataAnnotations
-UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持)
-Force 强制执行,重写已经存在的实体文件

生成数据库

    public EfCoreContext()
    {
        Database.EnsureCreated();//在构造函数中加入这个,在没有数据库时会创建数据库.
    }

增加'应用程式配置文件',便于后续修改或调用数据库路径.

 增加'<connectionStrings>'文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<!--数据库路径-->
	<connectionStrings>
		<add name="RecordTest"  connectionString="Data Source=WAYLIPC;Initial Catalog=RecordTest;
			 User ID=sa;Password=1987214li;Integrated Security=True;Encrypt=False" />
	</connectionStrings>
</configuration>

调用

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            string conStr = ConfigurationManager.ConnectionStrings["RecordTest"].ConnectionString;
            optionsBuilder.UseSqlServer(conStr);
        }

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值