首页 > 代码库 > 关于EntityFramework的Migration

关于EntityFramework的Migration

最近项目需要,用到了EF的Code First,开始的时候不知道,所以没有详细的搞,发现了几个问题,记录下来,以后看看:

1. 多对多表的时候,Configuration的配置是不能少的,找出对应表之间的主键,外键关系,通过Fluent Api进行配置,感觉还是蛮简单的。

1     modelBuilder.Entity<EquipmentClassPropertyType>()2                 .HasMany(m => m.EquipmentCapabilityTestSpecification)3                 .WithMany(m => m.TestedEquipmentClassProperty)4                 .Map(m =>5                 {6                     m.ToTable("T_Equipment_EquipmentClassAndSpec");7                     m.MapLeftKey("EquipmentClassPropertyID");8                     m.MapRightKey("EquipmentCapabilityTestSepcID");9                 });

 在两个对应类中均有对方的List,这样才能形成多对多关系;关键:对应类中不能有相同的外键,这样会导致新的问题的出现;

2. 关于配置文件:

  书写程序的时候,直接把数据的连接字符串链接的名称放到XXXContext中,可以节约N多功夫;

3. 就是关于数据的迁移变更问题了,刚开始,每次都干掉数据库,发现这是个问题啊,后来去看看了Migration,原来也是挺简单的;也就是几句代码的事,就是玩cmd命令一样,超级简单:

  

1 Enable-Migrations     // 启动数据库迁移2 Add-Migration AddNewClass  // 增加的新的类,完成数据变更,但是此操作只是挂起操作3 Update-Database             // 将挂起的操作写入数据库,实现变更4 Update-Database -TargetMigration:$xxxx 5                                 // 读取原有的变更参数,恢复原来的数据

至于更复杂的命令,我们还是查看官方文档吧。。。

 

关于EntityFramework的Migration