.net 存储库模式和聚合根模式以及实体框架
我正在根据存储库模式、聚合根和工作单元来构建我的应用程序。我使用实体框架5作为ORM 我所处的情况是,我不知道如何继续添加新实体,这些实体是聚合根,并且与非聚合根的实体具有外键关系 我不确定我之前的陈述是否有意义,但让我在这里举个例子 数据库中的Person表(这是我的应用程序中的聚合根).net 存储库模式和聚合根模式以及实体框架,.net,entity-framework,repository-pattern,aggregateroot,.net,Entity Framework,Repository Pattern,Aggregateroot,我正在根据存储库模式、聚合根和工作单元来构建我的应用程序。我使用实体框架5作为ORM 我所处的情况是,我不知道如何继续添加新实体,这些实体是聚合根,并且与非聚合根的实体具有外键关系 我不确定我之前的陈述是否有意义,但让我在这里举个例子 数据库中的Person表(这是我的应用程序中的聚合根) 名字 地址行1 乡下人 Countries表(这不是聚合根,因为我可能永远不需要单独查询它们) 乡下人 国名 在我的应用程序中,PersonsRepository实现了一个通用存储库,其中T是聚合根 现在,当
提前感谢您的回复和阅读长篇文章。聚合根不仅仅是您不需要直接查询的东西。根据您的推理,您必须多次创建同一个国家,因为您无法查询该国家是否存在(即该国家是一个弱表,需要人员存在) 简单地说,agreegate根是可以识别的对象,不需要任何其他东西。一个国家可能在没有人的情况下存在,而没有订单则无法识别订单行。您可能想阅读本文:
至于实体框架,请检查我的repository/uow:实现,EF抛出了什么错误?它抛出了“无法将Person对象转换为type Country”,我认为这是完全有效的,为什么我要在db中创建一个新的Country对象,而它是一个外键。如果我使用datacontext获取Country,并在创建它时将其分配给Person对象的Country属性,则效果非常好。感谢回复jgauffin,这澄清了我对聚合的理解。repository文章:“一种更现实的方法是您在UserRepository.GetUsersGroupOnSomeComplexQuery()中当您在USERealSo蓄中时,直接使用ADO.NET。CurATE()使用实体框架。“为什么我从来没有考虑过,干杯!