使用实体框架 4.1 代码优先而不是模型/数据库优先和 EDMX 图的优缺点是什么?
我试图完全理解使用 EF 4.1 构建数据访问层的所有方法。我正在使用存储库模式和IoC.
IoC
我知道我可以使用代码优先的方法:手动定义我的实体和上下文,并使用它ModelBuilder来微调架构。
ModelBuilder
我还可以创建EDMX图表并选择使用 T4 模板生成相同POCO类的代码生成步骤。
EDMX
POCO
在这两种情况下,我最终都会POCO得到不可知的对象ORM和派生自DbContext.
ORM
DbContext
数据库优先似乎最吸引人,因为我可以在 Enterprise Manager 中设计数据库,快速同步模型并使用设计器对其进行微调。
那么这两种方法有什么区别呢?仅仅是偏好 VS2010 与 Enterprise Manager 吗?
我认为区别在于:
代码优先
数据库优先
模型优先
我希望在 EF 4.1 的情况下,还有其他几个与 Code First 与 Model/Database first 相关的特性。Code first 中使用的 Fluent API 不提供 EDMX 的所有功能。我希望存储过程映射、查询视图、定义视图等功能在首先使用模型/数据库时有效并且DbContext(我还没有尝试过)但它们在代码中没有。