草庐IT

ddd-repositories

全部标签

c# - EF 代码首先是 : How to delete a row from an entity's Collection while following DDD?

场景是这样的:DDD声明您使用存储库获取聚合根,然后使用它来添加/删除它拥有的任何集合。添加很简单,您只需在要添加到的Collection上调用.Add(Itemitem)。保存时会向数据库中添加一个新行。但是,删除是不同的-调用.Remove(Itemitem)不会从数据库中删除项目,它只是删除外键。因此,是的,从技术上讲,它不再是收藏的一部分,但它仍在数据库中。仔细阅读,唯一的解决方案是使用数据上下文将其删除。但是根据DDD,域对象不应该知道数据上下文,因此必须在域外进行删除。解决这个问题的正确方法是什么?或者让数据库中充满孤儿是可以接受的吗(也许运行一个例程来清除它们)?

c# - DDD 基础设施服务

我正在学习DDD,但我对基础设施层有点迷茫。据我所知,“所有优秀的DDD应用程序”都应该有4层:Presentation、Application、Domain和Infrastructure。应使用存储库访问数据库。存储库接口(interface)应该在域层和存储库实现中-在基础设施中(引用DDD:WheretokeepdomainInterfaces,theInfrastructure?)。应用程序、域和基础架构层应该/可能有服务(引用ServicesinDomain-DrivenDesign),例如,基础架构层中发送电子邮件的EmailService。但是,在基础设施层内部,我们有存

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

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

php - WebSVN自动多Repositories

我已经开始使用WebSVN,我想知道是否有一种正确/适当的方法来自动添加我的所有存储库?我通过将/etc/websvn/svn_deb_conf.inc编辑为以下内容来解决这个问题:functiongetDirectoryList($d){$r=array();$h=opendir($d);while($f=readdir($h)){if($f!="."&&$f!=".."){$r[]=$f;}}closedir($h);return$r;}$config->parentPath("/var/lib/svn");$files=getDirectoryList('/home/svn-re

php - 类 App\Repositories\UserRepository 不存在

socialite=$socialite;$this->users=$users;$this->auth=$auth;}}这是我的Controller。当我加载这个Controller时,它显示了类似的错误"ReflectionExceptioninContainer.phpline791:ClassApp\Repositories\UserRepositorydoesnotexist".谁能给我一个解决方案? 最佳答案 可能是命名空间问题检查您的UserRepository文件类的路径。应该是:app/Repositories/U

php - Symfony 2 Entity Repository find()返回空数组

谢谢大家从现在开始的回答。这就是问题所在。我有一个带有两个实体(任务和产品)的symfony2应用程序。当我尝试查找(findBy,findOneBy,findAll)产品时,它返回一个空数组。任务实体tasks=newArrayCollection();}/***Setproduct**@param\pablo\UserBundle\Entity\Product$product**@returnTask*/publicfunctionsetProduct(\pablo\UserBundle\Entity\Product$product=null){$this->product=$pr

php - 将 DDD 与事件溯源混合在一起

我无法理解将DDD与ES混合在一起的概念。我认为事件是领域方面的一部分。鉴于将它们从存储库发布到外部世界并保持模型纯净和简单没有问题。但除此之外,必须有可能在特定聚合上重播它们。这是我的问题发生的地方。我想让我的域模型保持与lib/framework无关的纯粹和简单的对象。要在聚合上应用过去的事件,聚合必须意识到自己是ES结构的一部分(因此它不会保持纯域对象)。由于聚合的主要工作是强制执行一些可能随时间演变的业务不变量,因此不可能使用聚合API应用旧事件。例如,聚合Post和子实体Comments。TodayPost允许添加10条评论,并且方法addCommnet()守卫该规则。但过去

PHP DDD如何命名入口点方法?

遵循DDD设计原则时,在php中命名服务中的入口点方法的最佳实践应该是什么。与类相同:classGetSinglePerson{...publicfunctiongetSinglePerson($personId){}}命令模式:classGetSinglePerson{...publicfunctionexecute($personId){}}适配器模式:classGetSinglePerson{...publicfunctionhandle($personId){}} 最佳答案 一些不适合评论的评论;)DDD是notanarch

php - 交响乐 3.0 : Reuse entity in repository

在我的Symfony3.0项目中,我有一个名为ImageGroups的实体和一个使用ImageGroups实体的ImageGroupsRepository存储库。我还制作了一个带有ImagesRepository的Images实体在ImageGroupsRepository中,我有一个名为getUserImageGroups的方法,在ImagesRepository中,我有一个名为add的方法。我想问的是如何使用ImageGroupsRepository的getUserImageGroups方法到ImagesRepository的add? 最佳答案

php - DDD、PHP - 在哪里执行验证?

我最近开始玩DDD。今天,我在将验证逻辑放入我的应用程序时遇到了问题。我不确定我应该选择哪一层。我在Internet上搜索,但找不到解决我问题的统一解决方案。让我们考虑以下示例。用户实体由ValueObjects表示,例如ID(UUID)、年龄和电子邮件地址。finalclassUser{/***@var\UserId*/private$userId;/***@var\DateTimeImmutable*/private$dateOfBirth;/***@var\EmailAddress*/private$emailAddress;/***Userconstructor.*@param