日期:2014-05-18 浏览次数:20870 次
namespace BLL{ class A01{ public List<Model.A01> GetList(int id){ //... } public Model.A01 GetModel(int id){ //... } } class A02{ public List<Model.A02> GetList(int id){ //... } public Model.A02 GetModel(int id){ //... } } class A03{ public List<Model.A03> GetList(int id){ //... } public Model.A03 GetModel(int id){ //... } } }
namespace BLL{ class A<T>{ public List<T> GetList(int id){ //... } public T GetModel(int id){ //... } } class A01 : A<A01>{ } class A02 : A<A02>{ } class A03 : A<A03>{ } }
------解决方案--------------------
参考这个:http://code.google.com/p/dapper-dot-net/
下载它的测试项目,即使运行不起来,你看他写的测试代码就该知道如何使用了。
优美的语法,高效的执行效率,强大的通用性,基于它再进行优化将更加强大。
这里有我的第一版修改介绍和下载:http://blog.csdn.net/qldsrx/article/details/7452346
第二版也完成了,只是没发布,看请款再说,CSDN上面似乎没人关心这方面的东西,让我觉得发布与否变得无意义。
------解决方案--------------------
泛型咯。
------解决方案--------------------
BLL层只是实现抽象分离的一种方式。
把与具体数据访问无关的抽象业务逻辑分离开来,还是很有必要的。
这样,无论数据层还是BLL层都可以独立于对方而分别演化。这才是分层的目的所在。
两者都可以不需要知道对方的存在。而只是使用接口进行通信。
以上LZ的例子,除了使用泛型以外,还可以使用接口。Model中和BLL中都可以用接口:
public interface IA{ public List<IA0123> GetList(int id){ //... } public Model.IA0123 GetModel(int id){ } public class A01: IA{ .... }