草庐IT

repository-pattern

全部标签

c# - 多层 C# 应用程序中的异步/等待

我在高流量场景中有一个多层C#MVC4Web应用程序,该应用程序对各种存储库使用依赖项注入(inject)。这非常有用,因为它很容易测试,并且在生产中我们可以轻松地为特定Controller配置存储库。所有Controller都继承自AsyncController,因此返回Task的操作方法或Task真正帮助我们的服务器扩展到更多用户和solveforthedreadedthreadstarvationproblem.一些存储库使用Web服务,我们绝对可以使用Async/Await来提供可伸缩性优势。在其他情况下,有些人可能会使用无法安全线程化的非托管服务,其中async/await不

c# - 如何在 EF Core 2 中为 .ThenInclude 编写 Repository 方法

我正在尝试为EntityFrameworkCore2.0编写一个存储库方法,该方法可以使用.ThenInclude处理返回的子属性集合,但我在使用第二个表达式时遇到了问题。这是.Include的工作方法,它将返回实体的子属性(您提供lambda列表)。publicTGetSingle(Expression>predicate,paramsExpression>[]includeProperties){IQueryablequery=_context.Set();foreach(varincludePropertyinincludeProperties){query=query.Incl

c# - "Enum as immutable rich-object": is this an anti-pattern?

我经常看到并使用带有附加属性的枚举来做一些基本的事情,例如提供显示名称或描述:publicenumMovement{[DisplayName("TurnedRight")]TurnedRight,[DisplayName("TurnedLeft")][Description("Execute90degreeturntotheleft")]TurnedLeft,//...}并且有一组扩展方法来支持属性:publicstaticstringGetDisplayName(thisMovementmovement){...}publicstaticMovementGetNextTurn(thi

c# - 如何对使用 Entity Framework 的存储库模式进行单元测试?

我目前正在尝试对通过EntityFramework创建的存储库进行单元测试:我想要发生的是在不实际发送/连接到实际数据库的情况下测试存储库,我希望在不使用任何模拟框架的情况下进行此操作。目前我的测试是将数据发送到数据库,我想做的是测试添加/删除等方法而不将实际数据发送到数据库,因为它仅用于测试。这是存储库:namespaceAbstractFactory.Repository{usingSystem.Collections.Generic;usingSystem.Data.Entity;usingSystem.Linq;//////Thisclassservesasthestructu

C# 如何将 Expression<Func<SomeType>> 转换为 Expression<Func<OtherType>>

我以前使用过基于lamda的C#表达式,但我没有手工编写它们的经验。给定一个Expression>originalPredicate,我想创建一个Expression>translatedPredicate.在这种情况下,SomeType和OtherType具有相同的字段,但它们不相关(没有继承且不基于公共(public)接口(interface))。背景:我有一个基于LINQtoSQL的存储库实现。我将LINQtoSQL实体投影到我的模型实体,以将我的模型保留在POCO中。我想将表达式传递给存储库(作为规范的一种形式),但它们应该基于模型实体。但我无法将这些表达式传递给数据上下文,因

c# - 业务对象数据访问层的最佳 "pattern"

我正试图找出最简洁的方法来做到这一点。目前我有一个客户对象:publicclassCustomer{publicintId{get;set;}publicstringname{get;set;}publicListemailCollection{get;set}publicCustomer(intid){this.emailCollection=getEmails(id);}}然后我的电子邮件对象也很基础。publicclassEmail{privateintindex;publicstringemailAddress{get;set;}publicintemailType{get;s

c# - 这是 "Bastard injection anti-pattern"的一个很好的例子吗?

我看到首席开发人员正在编写这样的代码,并且在阅读MarkSeemann的书“.NET中的依赖注入(inject)”时,我想知道特定的"new"是否是“外来的”,因此是“BastardInjection”“??publicclassSessionInitServiceManager{protectedreadonlyICESTraceManager_traceManager;protectedreadonlyILogger_logger;protectedreadonlyIAggregateCalls_aggregator;protectedreadonlyIMultiCoreRepos

c# - 存储库模式和多个相关的核心实体或业务对象——一个存储库还是多个?

我正在考虑实现存储库模式(因为我想出的是90%的实现),并且遇到了一个设计问题-我有两个或更多核心业务对象(例如,业务和CRM应用中的联系人),BO可以是高度相关的,也可以是完全不相关的。在这种情况下,我应该实现一个存储库(例如CrmRepository,带有.addBusiness()、.addContact()等)还是多个存储库(BusinessRepository、ContactRepository,每个存储库都有自己的.add()、.delete()等).在这种情况下,最佳做法是什么?底层DAL是EF4。问候哞哞 最佳答案

#ubuntu# #git# repository git config --global --add safe.directory

ubuntu克隆下源码对其操作时git时偶发性报错 fatal:detecteddubiousownershipinrepository并提示可以:gitconfig--global--addsafe.directory/目录我们按提示执行确实可以短暂避免该问题,但治标不治本,且文件很多时需要一个个敲命令。产生这一问题的本质原因是下载代码的所有权没有转移,即你下载了别人的代码(一般使用docker下载后,本地编译容易出现),别人声明该代码所有权。所以,在修改代码时会报以上问题。因此,我们需要做的并不是声称哪目录是安全的,而是要将代码所有权转移。  使用以下命令将代码所有权转移gitconfig

javascript - _以 "revealing module pattern"样式编写的 JSDoc'ing Javascript 文件的最佳实践?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我的大多数Javascript函数都相对简单,并且需要它们的副作用:我使用jQuery来操作DOM或进行Ajax调用。我更喜欢以“揭示模块模式”的风格编写我的函数。我justdiscoveredJSDoc-注释Javascript文件有一个好处:在annotations的帮助下,Eclipse的JS开发工具可以解析我的JS文件和filltheEclipseOutlineView(否则将为空