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

2024-03-05

我喜欢保持项目的结构尽可能干净。 样本:

--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)

当我使用 EF 作为 ORM 时,我最终陷入了混乱。有人可以建议一些“干净”的方式来构建该项目吗?或者您可以建议一些最常用的标准项目结构。


我的首选结构是:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 EF、存储库、实体清理解决方案(项目)结构 的相关文章

随机推荐

  • C#.net 中具有不同间隔的多个计时器

    我想要输入不同间隔的不同计时器 例如 如果我输入 4 则 4 个计时器创建并在 4 个标签中显示时间 其中第一个计时器的时间在 1 秒内变化 第二个计时器的时间在 2 秒内变化 第三个计时器的时间在 3 秒内变化4tn 计时器的时间在 4
  • 在 Azure 应用服务中部署前端和后端应用程序的最佳方法是什么?

    我们正在分别使用 Reactjs 开发前端应用程序和使用 Nodejs 开发后端应用程序 但我不太熟悉 Azure 应用服务后端的部署工作方式 我已经成功部署了我们的前端 它现在已在应用程序服务 URL 中启动并运行 但我不确定如何处理后端
  • 在android帮助中翻转位图?

    我想为我的游戏节省内存 我想问你 因为我找不到任何东西 上次我在这里问问题时我得到了很好的答案 我可以在 Eclipse 中翻转位图 这样我就可以节省精灵的内存吗 我发现的所有教程都是关于旋转而不是翻转 翻转位图的教程仅适用于 open G
  • 通过 Websocket 传输视频

    我正在尝试构建可以从双方传输视频的移动应用程序 即视频通话之类的东西 我研究了 webrtc 但这还没有为移动本机应用程序做好准备 无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等 但在本机移动应用程序中捕获相机
  • SyntaxError:JSON 输入意外结束 - 这是为什么?

    这是我使用express和node js编写的代码 const express require express const https require https const app express app get function req
  • 我应该在哪里存储 jwt 令牌以在服务器端进行身份验证

    在我的 Nodejs 应用程序中 我使用 jwt 令牌进行身份验证 现在 在创建令牌后 将对其进行验证 为此 它应该存储在某个地方以供验证之用 所以 我的问题是 我应该将其存储在针对相关用户 ID 的单独数据库模式中 还是应该将其存储在其他
  • using 语句和await 关键字在c# 中表现得很好吗

    我有一种情况 我正在做一个async调用一个返回和的方法IDisposable实例 例如 HttpResponseMessage response await httpClient GetAsync new Uri http www goo
  • GLib-GObject-CRITICAL ...断言“夸克> 0”失败

    我对 Gtk 编程相当陌生 我正在使用 Gtkmm 库为我的应用程序编写一个简单的 GUI GUI 是一个更大的应用程序的一部分 它实际上编译为两个单独的可执行文件 但我不认为这是相关的 因为这个问题只涉及两个可执行文件之一 无论如何 我在
  • python:重新启动循环

    i have for i in range 2 n if something do something else do something else i 2 restart the loop 但这似乎不起作用 有没有办法重新启动该循环 Th
  • ajax发布请求到php $_POST vars为空

    我有一个 nginx 重写规则 它将 img src 属性重定向到 php 页面 在此 php 页面中 我尝试发出 GET 请求 成功后会向同一页面发出 POST 请求 将从 GET 请求返回的数据作为数据发送 为什么php脚本中 POST
  • Hadoop 中的分割大小与块大小

    Hadoop 中的分割大小和块大小之间有什么关系 当我读到this http willddy github io 2012 08 25 Hadoop Split and Block html 分割大小必须是块大小的n倍 n是整数并且n gt
  • iOS - iBeacon - iOS 7.1 更新后在后台作为信标进行广告(广播)

    我正在尝试使用 iBeacon 制作一个应用程序 其中一台设备将用作信标广播器 另一台设备将用作接收器 我经历了类似的事情在后台将 iPhone 作为 iBeacon 运行 https stackoverflow com q 1894432
  • 保存小部件的屏幕截图

    我想保存 Qt 中小部件的屏幕截图 我创建了以下应该可以工作的代码 QWidget activeWidget getActiveWidget a function that returns the current widget if act
  • jQuery on click 不适用于 iPhone(触摸设备)

    谁能向我解释一下为什么这在浏览器中有效 但在苹果 iPhone 等移动设备上却无效 在 iPhone 上 我从来没有得到过hello来自警报 为什么 div class close Click here div JS document on
  • 按多列聚合,对一列求和并保留其他列?根据聚合值创建新列? [复制]

    这个问题在这里已经有答案了 我有一个包含销售的数据框 我需要将 df 聚合 2 列ProductID and Day并对不同列中每个聚合组的值求和Amount现在它显示总数 我希望保留也可以分组的其他列 行之间的值相同 在这种情况下只是Pr
  • Mvvmlight 工具包 WPF4.5 中不存在 EventToCommand

    我正在使用最新的 MVVM Light Toolkit 版本 4 1 26 24928 并且正在使用 WPF 4 5 编写程序 现在我无法在 VS2012 XAML 文件中使用 EventToCommand 它说命名空间 clr names
  • ASP.Net 捆绑导致 HTTPS 错误

    当 web config 中的调试标志设置为 true 时 为什么会出现以下错误 混合内容 页面位于 https example com https example com 已加载完毕 HTTPS 但请求了不安全的脚本 http examp
  • hibernate.default_schema 是什么意思?

    我正在读一本Ben Scheirman 的博客文章 http benscheirman com 2007 12 blame nhibernate why not关于他为了提高性能而进行的一些 NHibernate 调整 文章最后有 第 7
  • Terraform:添加单个规则时,所有安全组规则都会被销毁并替换

    地形信息 地形 v0 12 18 提供商 aws v2 43 0 提供者 模板 v2 1 2 我定义了一个安全组 如果我跑terraform plan or terraform apply与我现有的堆栈相比 没有任何待处理的更改 状态完全是
  • 使用 EF、存储库、实体清理解决方案(项目)结构

    我喜欢保持项目的结构尽可能干净 样本 BlogApp sln BlogApp Data BlogModel edmx the EF mappings Post cs I end up having partial classes in he