现状:
一个企业级的应用,20人同时开发。
DB中大概有50个表,使用EntityFramework4.0,DB中所有表都映射到了一个edmx文件中。
问题:
1.开发阶段:由于是按照功能进行开发,所以多人同时开发时,所有人都会修改到edmx文件。导致维护非常累。
2.功能增强(追加)阶段。数据库还是在不断的更新。所以edmx也处于不稳定状态,多人同时修改edmx代码level down的风险非常大。
3.总的来看,edmx是一个紧耦合的东西,所有模块都依赖于它。
想法:
为了解决这个问题,准备按照功能模块将edmx进行拆分,进行解耦。
现在担心的是不知道这样做是不是最好的解决方案?另外,不知道多个edmx和单个edmx,在数据访问时对性能上面有没有什么影响?
这个和edmx关系不大,如果按照功能划分工作,对于数据层部分最好还是有个总的控制,否则很多人都在改,肯定会存在这个问题,需要工作方式一定的调整,其他任何的框架如果这样做,肯定也会存在同样的问题
至于效率,edmx在访问数据库时使用的是动态sql,虽然现代的数据库对这些sql可以优化,但比存储过程等还是有些慢,不过一般的应用估计不会有大的问题,多个edmx是个方法,对性能上不会有影响