我负责重构企业系统,使其更易于维护,可扩展和可测试 . 当项目启动时,团队决定使用LINQ2SQL,我们现在意识到这是一个糟糕的因为它通过在域层中实现INotifyPropertyChanged自动执行大量代码的方式 . 这会在某些方面导致严重的性能问题 .

这是一个需要从头开始重写的中型系统 . 在介绍新的ORM时,我试图实现以下目标:

  • 提高了域层的性能

  • 尽可能减少耦合

  • 允许系统中较小的客户端只能访问域层的某些区域

  • 减少开发团队将数据访问层更改转换为域层更改的工作量

我目前正在评估EF和NHibernate . 我倾向于使用EF,因为我相信微软将继续专注于开发它,我知道它将始终与VS很好地集成 . 我被告知如果我需要对我的域层进行更细粒度的控制,NHibernate是一个更好的选择 .

我错过了其他任何好的选择吗?这里最好的解决方案是什么?为什么?