最近项目中使用了ado.net Entity Framework,但在分层构架时遇到疑惑,希望大家大家能指点迷津.
系统构架是这样的:运用了ado.net Entity Framework作为数据层,逻辑层调用数据层,返回的数据类型为实体框架中的Model实体,如下代码:
然后在表现层(web)层调用逻辑层的方法GetRole,因为返回的数据类型是IList<DataAccess.Role>,这样表现层(Web)必须引用数据层,感觉这样失去了分层的必要性。后来参考了“分层式体系结构中的实体框架”中运用WCF的形式在表现层(Web)和逻辑层中间增加了一个服务层,表现层(Web)通过Wcf服务的形式调用服务层,但感觉这样的话可能会影响效率(通过WCF服务的形式,感觉有点像EJB)。有没有更好的方法?
表现层引用数据层有什么不好的吗?
表现层 ==> 服务层 ==> 逻辑层 ==> 数据层
这种方法不错啊。都是弱连接。除了(逻辑层 ==> 数据层)之间。
分层并不意味着可以降低效率或者提高效率。这要看你对分层的真正理解,以及项目的扩展性,维护性方面的认识。:)