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 初始化数据库的主要内容,如果未能解决你的问题,请参考以下文章