MVC4 + EF5.0 codeFirst 与数据迁移
最近一个项目用到了 Coed First ,和大家分享一下.
1. 创建实体:
1 public class JobInfo 2 { 3 public int Id { get; set; } 4 public string JobName { get; set; } 5 public string JobNum { get; set; } 6 }
2.创建 DbContext :
1 public class DbContextJob : DbContext 2 { 3 public DbSet<JobInfo> JobInfo { get; set; } 4 5 //移除复数表明契约 6 modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 7 8 //防止黑幕交易 要不然每次都要访问 EdmMetadata这个表 9 //modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 10 11 }
3. 在mvc 项目中需要配置Web.config
1 <configSections> 2 <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 3 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 4 </configSections> 5 6 <entityFramework> 7 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 8 <parameters> 9 <parameter value="Data Source=.;Integrated Security=True;MultipleActiveResultSets=True" /> 10 </parameters> 11 </defaultConnectionFactory> 12 </entityFramework>
4. 可以创建一个控制器 初始化一下数据库了
1 public ActionResult Index() 2 { 3 using (DbContextJob db = new DbContextJob()) 4 { 5 6 JobInfo inf = new JobInfo() 7 { 8 JobName = "123", 9 JobNum = Guid.NewGuid().ToString() 10 }; 11 db.JobInfo.Add(inf); 12 db.SaveChanges(); 13 } 14 return View(); 15 }
5. 数据库生成了,在vs 视图==>其他窗口==>程序包管理控制台
6. 运行命令Enable-Migrations

7. 可以修改实体的字段或者在添加表。
运行:
add-migration
Update-Database
如果出现错误:未加载程序包 The EntityFramework package is not installed on project xxx
解决:进去管理NuGet 更新EF即可 .

浙公网安备 33010602011771号