我和我的团队将开始一个新项目,我们正处于探索和测试一些新的(或不太新的)技术的阶段。
直到今天,我们还在使用带有 DBDataReaders 的经典 ADO、用于延迟加载的代理,在某些情况下还使用 DataTables。
该团队由 3 名开发人员和 1 名数据库设计师组成。我们的项目每个项目至少包含 130 张桌子。
我们的新项目有增长的潜力,所以我们肯定会有 100 张桌子。
在过去的两天里,我一直在阅读并使用 EF5 进行一些简单的测试,但我仍然无法决定是否应该使用它。
- 我们通常将一个大项目拆分为许多“模块”项目,使我们能够在源代码控制下更快更好地工作。我们要为整个数据库使用一个大的“edmx”吗?
- 由于我们有一个数据库设计器,我怀疑 CodeFirst 不是一个选项。那么是否值得将 EF 与 Database First 方法一起使用?
- 如果我们使用数据库优先方法,EF 是否足够聪明,可以正确检测所有关系并准备好使用,而无需我进行更多额外配置?(通过额外的配置,我的意思是我必须编写 DataAnnotations 或必须覆盖 DbContext)
- 就个人而言,我发现自己对使用 sql 设计数据库非常有信心。我唯一的烦恼是当我的类列表中的实体发生更改时,我必须更新所有的选择、删除、更新、插入脚本。EF 会为我解决这个问题,但除此之外,我开始相信它会降低性能并最终降低我的生产速度,因为我们不熟悉它。
你认为它值得吗?
*除了 DataAnnotations 和 DbContext ovveride,是否有人使用纯 T4 模板来创建表(模式)?