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      }
View Code

 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即可 .

  

posted @ 2013-07-04 17:34  db丶  阅读(793)  评论(1)    收藏  举报