0

我已经以下列方式使用的回购模式在我的web应用形式库模式窗体

UI层:

它包含在其中的控件被绑定文件后面的代码和像INSERT,UPDATE,等用户动作照顾

UI层调用

库层:

它包含的存储库的类继承GenericRepo:IGeneric

数据层:

它包含EF产生域类

层是严格的即时界面即UI层调用Repo层,并依次调用数据层来获取数据。

问题:

现在的问题IM面是,例如,如果我需要Products.aspx页面上的产品清单,我需要做一些事情像

IProductRepo pr = new ProductRepo(); 

IList<Products> lstProducts = pr.GetAll(); 

我不想加入将数据层引用到UI层以便访问由EF生成的域实体,例如由EF

生成的选项是什么?请引导我走向正确的道路

关于。

回答

1

在我看来你错过了一层。我会这样构建它:

UI    | 
-----    | 
**Domain**  | Domain classes 
-----    | 
DAL (Repository) | 

这样,你的逻辑是在一个单独的层,你的DAL是完全隐藏你的逻辑和领域模型。

解决此问题的另一种方法是使用依赖注入。这样你可以定义一些接口,只保留对接口的引用。通过依赖容器,可以将这些引用绑定到实际类型。

我的首选DI容器例如Ninject

+0

TNX你的时间,你可以解释差异的B/W'Domain'和'领域Classes'我应该在Domain层? – dakait 2013-05-10 22:05:08

+0

域层将是您的'服务',这是协调UI,域类和DAL之间事务的类。 – Kenneth 2013-05-10 22:20:30