1. 程式人生 > >EF Code First 初始化數據庫

EF Code First 初始化數據庫

contex migration inittab type ngs mod ring 使用 目的

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 初始化數據庫