首先對於EF中先出現的datebase first和model first兩種編程方式,其的區別根據字面意思很容易能夠理解。
datebase first就是代表數據庫優先,那么前提就是先創建數據庫。
model first就是代表model優先,那么前提也就是先創建model,然后根據model自動建立數據庫。
這兩EF的編程方式在使用的過程中的區別為:
在添加ADO.NET實體數據模型的時候,database first選擇的是從數據庫生成。
並且在數據結構發生變化的時候,database first編程方式中是選擇從數據庫更新模型,因此就導致了database first是以數據庫為主
而Model first選擇的是空模型生成。
並且當數據結構發生變化的時候,model first選擇的是從模型生成數據庫。
所以這兩種不同的方式就導致了 database first和Mode first的區別。
至於最后一個code first就是不需要創建一個ADO.NET實體模型的過程。直接在model里面寫實體類和dbcontext上下文類。
但是在實際的過程中,如果dbcontext上下文類中如果沒有添加
去除復數的約束
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
那么在使用code first的時候就會創建一個復數名的數據庫。