EF CodeFirst 实体生产数据库

参考以下资料

一、EF code First数据迁移学习笔记
二、EF应用一:Code First模式
三、EF CodeFirst下,当实体结构发生修改怎么更新数据库结构

EF安装过程

一、输入命令:Install-Package EntityFramework 进行安装。

Install-Package EntityFramework

二、config 增加节点

注:具体信息根据实际情况来进行填写

<connectionStrings>
    <add name="DataBase" providerName="System.Data.SqlClient" connectionString="Server=.;Database=EFCodeFirst2;User Id=sa;Password=123456" />
</connectionStrings>

三、在程序包管理控制台输入命令:Enable-Migrations 增加迁移功能

Enable-Migrations
在运行完命令之后就会发现自己的项目文件里面多了一个Migrations文件,下一步我们需要对这个文件进行操作。

  • AutomaticMigrationsEnabled = true; 是否启动自动迁移 如果是false 无法用命令
  • AutomaticMigrationDataLossAllowed =true; 指示在自动迁移期间数据丢失是否可接受。
    如果设置为false,如果数据丢失可能会在自动迁移过程中发生,则会引发异常。如果不加,可以用 Update-Database -force 后面加上 -force 一样可以实现 AutomaticMigrationDataLossAllowed =true 效果。

四、增加迁移节点

  • 全称: Add-Migration -StartupProjectName EF43
    在指定的项目中增加一个迁移点,此命令后会要求输入一个 Name 参数,此参数的值为迁移点名称
    假设输入的迁移点名称为 MyFirstTest 则会生成一个类似如下的文件 201202290718442_MyTestFirst.cs,其包含两个方法 Up() 和 Down(),分别用于此迁移点的升级和降级
  • 简写方式:Add-Migration 【迁移文件名称】

五、将指定的项目的数据库结构升级到最新

  • Update-Database -StartupProjectName EF43
  • Update-Database -TargetMigration:“201202290718442_MyTestFirst”,将当前数据库结构升级到此迁移点(无参数 - - TargetMigration 则为升级到最新)
  • Update-Database -Script,显示用于更新数据库结构的相关 sql 代码
  • Update-Database -Script -SourceMigration:“aaa” -TargetMigration:“bbb”,显示将迁移点“aaa”升/降级到迁移点“bbb”的相关 sql 代码
  • 注:如果发生“System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation”异常,请查看是否显示指定了项目名(本例为 -StartupProjectName EF43)

EF针对Npgsql数据库

一、增加依赖

Install-Package Npgsql.EntityFramework

二、config文件增加节点

<system.data>
    <DbProviderFactories>
      <remove invariant="Npgsql"/>
      <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" support="FF"/>
    </DbProviderFactories>
</system.data>

二、dbContext增加重写

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.HasDefaultSchema("public");
    base.OnModelCreating(modelBuilder);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值