Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework DDD、EF和引用完整性_Entity Framework_Domain Driven Design_Aggregate_Navigation Properties - Fatal编程技术网

Entity framework DDD、EF和引用完整性

Entity framework DDD、EF和引用完整性,entity-framework,domain-driven-design,aggregate,navigation-properties,Entity Framework,Domain Driven Design,Aggregate,Navigation Properties,好的,我定义了我的根。根中的实体可以引用同一根中的其他实体,但不能引用外部的实体。在那里,他们只能拥有身份或相关实体。这一切都很棒 但是,我使用的是EF5,导航属性正在成为阻碍。我只想定义实体位于聚合中的导航属性。但是,在相关实体位于不同聚合中的情况下,如何应用一些引用完整性呢?是否是使用迁移手动添加FK的唯一选项 再一次,但是。。。这会引起一点问题,因为我希望能够拥有ReadOnlyRepositories,用于从各地获取聚合数据。我不想进入CQRS,因为我觉得那里有太多的飞跃。我是否需要第二

好的,我定义了我的根。根中的实体可以引用同一根中的其他实体,但不能引用外部的实体。在那里,他们只能拥有身份或相关实体。这一切都很棒

但是,我使用的是EF5,导航属性正在成为阻碍。我只想定义实体位于聚合中的导航属性。但是,在相关实体位于不同聚合中的情况下,如何应用一些引用完整性呢?是否是使用迁移手动添加FK的唯一选项


再一次,但是。。。这会引起一点问题,因为我希望能够拥有ReadOnlyRepositories,用于从各地获取聚合数据。我不想进入CQRS,因为我觉得那里有太多的飞跃。我是否需要第二个有边界的上下文,以及定义了额外导航属性的新实体集(或者可能是派生集)?这样我就可以编写从多个根中提取数据的查询了?

需要引用完整性通常表明存在更深层次的问题。为什么两个表中都需要实体标识符?这样保持一致的是什么?为什么没有明确地建模?这些问题不如答案重要。还要认识到,只要在同一个db模式(和适当的索引)上使用其他技术,您的许多问题就可以解决。谁知道呢,那时你可能正在做CQR。

需要引用完整性通常意味着一个更深层次的问题。为什么两个表中都需要实体标识符?这样保持一致的是什么?为什么没有明确地建模?这些问题不如答案重要。还要认识到,只要在同一个db模式(和适当的索引)上使用其他技术,您的许多问题就可以解决。谁知道呢,那时你可能正在做CQRS。

CQRS意味着一个巨大的飞跃?为了大声叫喊,它只是意味着除了域模型之外还有一个读取模型。既然数据库负责引用完整性,那么您不能简单地忽略EF模型中的关系吗?因此,在数据模型中也没有导航的方法。CQRS意味着一个巨大的飞跃?为了大声叫喊,它只是意味着除了域模型之外还有一个读取模型。既然数据库负责引用完整性,那么您不能简单地忽略EF模型中的关系吗?因此,在数据模型中也没有导航的方法。