EF Code First 初始化数据库

Posted ranke110

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF Code First 初始化数据库相关的知识,希望对你有一定的参考价值。

EntityFramework 在用过一段时间之后,只要是.net环境,就难免不想起它。它留给我手指的记忆强迫我继续使用。。。

 

首先新建一个类库,然后新建DataContext类,这个类是主要用来对数据库操作的。(必须要引用EF)

public class DataContext:DbContext
{
        public DataContext()
            :base("default")
        {
        }
        public DbSet<UserInfo> UserInfo { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Add(new DecimalPrecisionAttributeConvention());
            base.OnModelCreating(modelBuilder);
        }
        public int Commit()
        {
            return SaveChanges();
        }
}

 然后如果类库跟Web程序隔离了,那么就需要配置web.config而不是Appconfig

技术分享图片

<configuration>
  
  
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" 
    type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    requirePermission="false" /> </configSections> <connectionStrings> <add name="default" connectionString="Data Source=.;Initial Catalog=Demo;User ID=sa;Password=123456;" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>

还有一个实体的结构,BaseEntity里面是定义了一个Guid,看自己需要吧,商业项目都需要guid的。

public class UserInfo: BaseEntity
{
        public string UserName { get; set; }
        public string Password { get; set; }
}

 然后在程序包管理控制台里,输入 Enable-Migration,出现如下提示:

技术分享图片

大概就是打开了数据迁移,然后

add-migration initTable

会新增一个migration,就是数据迁移类。每次对数据库修改后都要Add-migration,对数据库的更改记一次版本,来达到版本控制的目的。

技术分享图片

最后提交到数据库

update-database

数据库显示已创建表

技术分享图片

 



以上是关于EF Code First 初始化数据库的主要内容,如果未能解决你的问题,请参考以下文章

EF Code-First 学习之旅 数据库初始化

EF Code First 未初始化数据库

EF Code-First 学习之旅 数据库初始化

20.翻译系列:Code-First中的数据库迁移技术EF 6 Code-First系列

EF Code First与另一个数据库上的现有数据库

EF6 学习笔记:Code First 方式生成数据库及初始化数据库实际操作