具有大型项目的实体框架

Ste*_*kis 6 c# entity-framework

我和我的团队将开始一个新的项目,我们正处于探索和测试一些新的(或不是那么新的)技术的阶段.

直到今天我们使用经典的ADO和DBDataReaders,代理延迟加载,在某些情况下使用DataTables.

该团队由3名开发人员和一名数据库设计人员组成 我们的项目每个至少包含130个表.

我们的新项目有可能增长,所以我们肯定会有100张桌子.

我在过去2天一直在阅读和使用EF5进行一些简单的测试,但我仍然无法决定是否应该使用它.

  1. 我们通常将一个大项目分成许多"模块"项目,使我们能够在源代码控制下更快更好地工作.我们是要为整个数据库使用一个大的"edmx"吗?
  2. 由于我们有一个数据库设计器,我怀疑CodeFirst不是一个选项.那么使用EF和Database First方法是否值得?
  3. 如果我们使用数据库第一种方法是EF足够智能,可以正确检测所有关系并准备好使用,而我没有更多的额外配置?(通过额外的配置,我的意思是我将不得不编写DataAnnotations或必须ovbide DbContext)
  4. 就个人而言,我发现自己对使用sql设计数据库非常有信心.我唯一的烦恼是当我的类 - 列表中的实体被更改时,我必须更新所有选择,删除,更新,插入脚本.EF会照顾我,但除此之外,我开始相信它会降低性能并最终减慢我的生产速度,因为我们不熟悉它.

您认为它值得信赖吗?

*除了DataAnnotations和DbContext ovveride之外,是否有人使用普通的T4模板来创建表(模式)?

小智 3

我决定不再使用EF。我不会冒险在大项目中使用它。

使用它所需的所有工作、处理错误的可能性、额外的开销。我更喜欢编写更多的 sql 代码并花更多的时间进行维护,而不是处理生成的模型或检查生成的查询的 sql 分析器。

谢谢大家的意见..

*在我再次直接使用 ADO 之前,我将尝试一下 FluentData 和 Dapper。我将提出一个新问题,因此如果你们想对这两个轻型 ORM 发表评论,我稍后会发布链接。