领域驱动设计和实体框架 4.1(代码优先)

2023-12-24

我目前正在学习领域驱动设计开发方法,并使用 Tim McCarthy 编写的《.NET 领域驱动设计与 C#》一书作为指南。

这本书确实很有帮助,但在使用实体框架时我变得有点困惑,特别是 4.1 中提供的代码优先方法。

根据书中的示例,分层架构方法应该意味着基础设施层看不到模型/领域。

那么,在数据库上下文类中映射我的域 poco 的最佳方法是什么(我假设)应该位于基础设施层,而不违反分层方法?

我的想法很可能完全错误,所以请让我知道,因为我仍在学习!

非常感谢 :)

Adam


如今大多数 ORM,例如 EF 4.1 和 Nhibernate(流畅的 Nhibenrate 插件)都可以通过映射类描述从 POCO 到 Db 上下文的映射。这些映射类最好放置在基础设施数据库项目中,也许与 ORM 会话特定的类一起放置。

然后,您的 POCO 域类应该放置在一个域项目中,该项目不应该有任何对其他组件或项目的引用。但是基础设施数据库项目应该引用域,以便您的映射类可以描述如何从持久状态加载 POCO。

使用大量依赖注入以及良好且可靠的 IoC 框架(温莎城堡...)。这将帮助你放松一些。最好依赖抽象/接口而不是实现。

这是基础知识http://www.infoq.com/articles/ddd-in-practice http://www.infoq.com/articles/ddd-in-practice

但幸运的是,您决定采用“代码优先”方法。如果可以的话,我真的推荐这种方法。但有时当旧的遗留系统干扰时,事情就没那么容易了。

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

领域驱动设计和实体框架 4.1(代码优先) 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现

随机推荐

  • 如何在 Nest.js 中使用查询参数?

    我是 Nest js 的新手 我的代码如下 Get findByFilter params async findByFilter Query query Promise
  • git-svn“找不到 revmap”-这是什么意思?

    跑步时git svn clone并且经常在随后的过程中git svn fetch我在许多文件夹中收到此消息 Couldn t find revmap for
  • 将 HTML 元素放入原型链中?

    我想创建一个对象 通过将元素放入对象的原型链中来扩展 HTML 元素的功能 我想我可以用如下的方法来做到这一点 var el document createElement div el innerHTML foo var wrapper O
  • 将变量从一个 POJO 复制到另一个 POJO

    我有一个 POJO A 它有 30 多个变量 我有另一个 POJO B 大多数变量与 A 中的相同 例如 A 有一个变量 var1 作为 LocalDate 列表 B 有一个同名 var1 的属性 但作为 Long 列表 长日期值 现在 我
  • 获取字体中的所有可用字符

    我正在使用 Swift 3 开发 iOS 应用程序 在此应用程序中 我列出了所有可用的字体 系统提供 但我也想列出它们的所有可用字符 例如 我正在使用 Font Awesome 我希望用户能够从列表中选择任何字符 符号 我怎样才能做到这一点
  • 通过环境变量指定 @CrossOrigin 来源

    是否可以指定来源 CrossOrigin通过环境变量进行注释 我想这样做 以便我可以使用相同的代码库进行 uat staging 生产 我希望我的 uat staging 环境可以通过 localhost 访问进行测试 但我的生产环境只接受
  • (为什么).Net 中的反射如此昂贵? [复制]

    这个问题在这里已经有答案了 可能的重复 反思的 成本 是多少 https stackoverflow com questions 224232 what is the cost of reflection 有没有人对普遍接受的口头禅有一个很
  • Node js:libuv 线程池如何工作?

    我正在学习 Node Js 我了解 Node js 的核心是基于事件循环的反应器模式 当任何事件发生时 它都会进入事件队列 然后在运行任务结束后被堆栈拾取 如果事件是非阻塞事件 则会发生这种情况 但如果它是阻塞请求 则事件循环将其传递给来自
  • 如何使用复选框在 mySQL 中输入 true (1) 或 false (0) 并在 php / html 表单中显示为选中状态?

    我有一个带有字段名称的表Shift Trig这意味着有一个true or false以 a 的形式输入的值1 or 0 我有一个 html 表单 每行都有一个复选框 选中时应输入1进入现场 我还希望该复选框能够反映存储在中的当前值Shift
  • 删除 Three.js 中相邻的面

    我正在尝试优化一个场景 其中我根据图像的像素数据渲染立方体 http jsfiddle net majman 4sukB http jsfiddle net majman 4sukB 该代码只是检查图像中的每个像素并相应地创建和定位立方体网
  • 如何将程序加载到内存中与预期地址不同的地址?

    通常 用户程序二进制文件将加载到低地址 通常约为0x400000 在程序地址空间中 该空间将在elf二进制 对于 Linux 我们能否强制用户二进制文件加载到高地址 可能在2GB地址范围 其中libc或加载其他此类库 我尝试在网上寻找解决方
  • 创建 CSS Sprite :hover 滚动图像链接

    我有一个问题希望能得到答案 我正在尝试从头开始创建一个网站 不使用 Dreamweaver Expression Web 等 我只使用记事本 我想要完成的是在标签内创建两个导航链接作为翻转 CSS 精灵图像 使用伪类元素 hover 我稍后
  • mex 将向量从 c++ 从 mex 函数传输到 matlab

    我试图通过用 C 编写一些函数并使用 mex 接口来集成它们来加速我的 Matlab 程序 我在 C 向量中得到了结果 我想将它转移到 MATLAB 中的数组 我知道我应该重定向 plhs 0 to the vector 当我完成类似的事情
  • 如何在tensorflow中读取.mat文件格式?

    Tensorflow 中的 Reader 共有三个版本 tf TFRecordReader 用于读取TFRecord文件 tf FixedLengthRecordReader 用于读取二进制文件 tf TextLineReader 用于读取
  • Qt Creator - 如何启用浮动 IDE 布局?

    我是长期用户内河码头 C Builder窥视Qt创建者 版本 4 4 0 目前看来非常适合所有类型的 C 开发任务 因此可能非常高效 不幸的是有一个major与相比 缺点显着减慢了我的速度C Builder 我找不到任何可以重新排列的设置Q
  • SearchControls.setTimeLimit() 是否处理读取超时?

    我遇到一个问题LdapContext search 针对目录有时会永远挂起 我尝试提供一个SearchControls我调用的对象setTimeLimit 10000 但问题仍然发生 鉴于此 我现在的想法是 SearchControls 对
  • UNIX 僵尸和守护进程

    据我所知 当进程不能很好地清理 其资源没有被回收 收获 时 就会创建僵尸 调用 fork 创建新进程后 父进程应始终对该进程调用 waitpid 来清理它 我还了解到 守护进程是通过分叉一个本身由 fork 创建的子进程 然后让该子进程死亡
  • 如何通过拨动开关应用设置? [复制]

    这个问题在这里已经有答案了 可能的重复 谁能告诉我如何使用开关 https stackoverflow com questions 5639372 can anyone tell me how to use switch 嗨 我有两个视图
  • CSS线性渐变不准确?

    对于我的应用程序 我希望制作一个可以提供 0 度到 360 度之间任何色调的调色板 我目前正在使用此代码来制作调色板 我们以色调 120 纯绿色 为例 function drawPalette hue var ctx document qu
  • 领域驱动设计和实体框架 4.1(代码优先)

    我目前正在学习领域驱动设计开发方法 并使用 Tim McCarthy 编写的 NET 领域驱动设计与 C 一书作为指南 这本书确实很有帮助 但在使用实体框架时我变得有点困惑 特别是 4 1 中提供的代码优先方法 根据书中的示例 分层架构方法