实体框架中的完全定义的关系是代码嗅觉

问题描述 投票:-2回答:1

这是经典的例子:

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public Blog Blog { get; set; }
}

这会创建循环(或循环)依赖关系。因此,您可以获得循环依赖所带来的所有恶意:单一责任违规,JSON序列化程序异常和IoC容器异常,仅举几例。

它非常像一种代码味道。

是吗?

entity-framework design-patterns circular-dependency anti-patterns
1个回答
0
投票

实体框架中的完全定义的关系是代码嗅觉

不是抽象的。意思只是因为你定义了所有关系并不意味着存在问题。

这会创建循环(或循环)依赖关系。

您的代码没有此类依赖项。使用您已设置的导航属性,即使使用有效的EF Entity Builder设置,也无需更改这些类,您就没有这样的依赖关系。您如何决定使用这些类,更改是否存在此问题。

你得到循环依赖带来的所有恶意

这一直存在。简单地使用EF不应该神奇地使它消失。

我们围绕现实世界的场景/实体设计我们的课程。那些场景/实体具有完全相同的问题。

© www.soinside.com 2019 - 2024. All rights reserved.