使用EF,存储库,实体清洁解决方案(项目)结构

Naz*_*gol 9 asp.net-mvc entity-framework projects-and-solutions project-structure

我希望尽可能保持项目结构的清洁.样品:

--BlogApp.sln
  --BlogApp.Data
      BlogModel.edmx (the EF mappings)
      Post.cs (I end up having partial classes in here with attributes)
  --BlogApp.Domain
    --Entities
        Post.cs (I would like to have my POCOs here with all its additional logic)
    --Repositories
        PostsRepository.cs
  --BlogApp.Ui
      (standard MVC structure)
Run Code Online (Sandbox Code Playgroud)

当我使用EF作为我的ORM时,我最终弄得一团糟.任何人都可以建议一些"干净"的方式来构建项目吗?或许您可以建议一些最常用的标准项目结构.

Lad*_*nka 21

我的首选结构是:

Solution
  -- Common
       - Shared features used accross all layers
       - You can also place interfaces for repositories and uow here
  -- Entities - shared among DataAccess, Business (and UI in small projects)
       - T4 template + partial classes + custom enums  
       - partial classes can contain methods with domain logic => domain objects 
  -- DataAccess - all EF dependent code here
       - EDMX or code first mapping
       - Repositories
       - UnitOfWork
  -- Business - not every project needs this assembly
       - Business services 
       - Logic like workflows
       - DTOs exposed to UI
  -- UI
       - Controllers
       - Views
       - ViewModels
Run Code Online (Sandbox Code Playgroud)