- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 EF 4.1 Code First 布置一个新的数据层,从旧的自制数据层迁移。
我已经设置了两个程序集,一个用于我的上下文,另一个用于所有 POCO 代码第一类。
我有一些业务逻辑,例如,对在几个不同地方使用的一个表(或几个表)的查询。我应该把它放在哪里?
它不能进入 POCO 类,因为它连接了几个表,因此需要一个上下文。它可以进入上下文,但该上下文会因数百个杂乱无章的查询而变得臃肿。 所有业务逻辑是否有共同的模式或安排?
最佳答案
看起来存储库模式是一切的解决方案......存储库不是 Elixir !
我每天都在 EF 中使用存储库模式,因为当我几个月前开始我当前的项目时,它看起来像是推荐的解决方案。我的结论:
IQueryable
,您将模拟存储库并测试您的上层而不依赖于 EF 和数据库的一般想法就会失败。 . Linq-to-entities 只是 Linq-to-objects 的子集,我多次看到绿色单元测试和运行时异常,mock 不处理参照完整性。使用 EF 的正确测试方法是集成测试。 Mocking repository 仅用于测试与数据访问无关的真实业务逻辑。如果您没有对访问或持久化数据的业务方法进行集成测试,则您没有对其进行测试。 DbSet
和
ObjectSet
是存储库和
DbContext
和
ObjectContext
是作品单元。所以在我看来,存储库模式被过度使用了。它在需要严格分层的大型项目中或在为其方法放置附加逻辑的情况下非常有用。仅仅因为您想包装对 EF 的访问而使用存储库通常是无值(value)的代码,并且只是额外的复杂层。
关于.net - 从组织上讲,在使用 Entity Framework Code First 时,我应该将常见查询放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488313/
我想使用“SpeechSynthesizer”来朗读文本,但该文本包含一些 XML 标记。使用旧的 COM 对象,我使用了 S5Voice.Speak uString, SVSFDefault Or
我对 MIT OCW Python 第 3 课有疑问。 根据简单的数学计算,她使用的代码应该不会成功。 ## EXAMPLE: approximate cube root ##############
从 CSP193p 2015 第 15 讲开始,prepareForSegue 中的以下代码将弹出窗口的高度最小化为 iPad 上的两行标签和文本字段: let minimumSize =
我目前正在尝试完成 iTunes U 上的 Swift 类(class),我们正在构建一个计算器。我无法理解部分代码。 我在下面添加了我认为与文件相关的代码。 让我感到困惑的是:为什么 operati
无法理解 PHRASES 部分的代码。这是《Python 艰难之路》中的代码。那部分之后我很失落。有人可以解释一下吗? 书中没有对下面的代码进行任何解释。 import random from url
此问题来自 MIT Python 类(class) 6.00.1X,Lectrue 8。我尝试了两段略有不同的代码。两者都是为了计算每个学生的平均成绩。 第一个代码没有考虑到可能存在字母等级,第二个代
在第 6 讲 Stanford iOS9 2016 系列讲座中,程序中添加了一个名为 VCL.swift 的文件来演示 View Controller 生命周期。 我已经添加了文件,但是对于行 "pr
我是一名优秀的程序员,十分优秀!