我想构建我的MVC web项目,我遇到了一些问题。构建ASP.Net MVC 3与EF
我正在使用EF4.1。我用EDMX文件创建了一个DataAccess项目。然后我使用dbContext生成器来创建我的POCO .tt类。
就在现在,我的业务逻辑层可以很好地访问POCO类,但表示层不能。
我认为我应该创建另一个抽象层,并将dbContext .tt文件放入他们自己的项目中,这样BusinessLogic层和Presentation层就可以访问POCO类,但只有BusinessLogic才能访问到实体框架。表示层不需要知道关于EF的任何信息。
事情是这样的......
POCO Classes - DataAccess
| |
|---------Business Logic
| |
|_________Presentation
我在这里在正确的轨道上,如果是这样,我干脆砍了.TT文件/粘贴到新的项目或者是有办法迫使dbContext插件在我的其他项目中创建这些插件?
所以我一直在研究ViewModels,我想我理解这个概念。我的下一个问题:创建ViewModel时,是否在我的模型中引用了POCO类?我所见过的大多数示例似乎都访问了某种类型的存储库,通常称为_accountRepository。但我不确定这些存储库在结构中的存储位置。 – Scottie
我的存储库我将保留在一个数据存取项目中。该存储库将返回您的EF poco对象(或任何poco对象)。在一个单独的项目中,我会有我的逻辑即服务。有些人选择在他们的模型类上使用扩展方法,将其转换为视图模型。我在我的服务层中执行此操作,例如GetCustomerEditViewModel(int customerId),它获取我的实体并将其映射到poco。请参阅Jimmy Bogards文章:http://lostechies.com/jimmybogard/2009/06/30/ how-we-do-mvc-view-models /我喜欢automap属性实现,以便将其转换为虚拟机。 –