Entity Framework学习笔记_1.三种开发模式
Entity Framework的三种开发模式
一、模型优 EF Designer to a New Database (Model First)
1、在建模建立主从表关联时,子表使用主表表名+关键列作为其关联字段,如Post对象的BlogID
2、导航属性需要根据实际情况设置复数,否则默认与表名相同的单数形式,如上图的Blog对象的Posts
3、对象实体的集合名称在VS2012中文版时会自动变为Blog集,注意修改为Blogs
二、数据库优先 EF Designer to an Existing Database (Database First)
三、代码优先 Code First to a New Database
public class Blog { public int ID { get; set; } public string Name { get; set; } public virtual List<Post> Posts { get; set; } }
public class Post { public int ID { get; set; } public string Title { get; set; } public string Content { get; set; } //public int BlogID { get; set; } public virtual Blog Blog { get; set; } }
使用代码优先时,应显示定义关联属性,如没有显式定义,如上图属性BlogID,则生成数据库时会根据其关系增加“表名_关键列”格式的关联属性列,如下图Blog_ID
实体对象发生变化时可使用代码优先迁移工具实现,Tools -> Library Package Manager -> Package Manager Console,
运行命令Enable-Migrations、Add-Migration、Update-Database三步实现
Code First to an Existing Database 参考 http://msdn.microsoft.com/en-us/data/jj200620
利用EF Power Tools扩展工具实现数据库到实体对象的工程反向。