这是经典的例子:
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容器异常,仅举几例。
它非常像一种代码味道。
是吗?
实体框架中的完全定义的关系是代码嗅觉
不是抽象的。意思只是因为你定义了所有关系并不意味着存在问题。
这会创建循环(或循环)依赖关系。
您的代码没有此类依赖项。使用您已设置的导航属性,即使使用有效的EF Entity Builder设置,也无需更改这些类,您就没有这样的依赖关系。您如何决定使用这些类,更改是否存在此问题。
你得到循环依赖带来的所有恶意
这一直存在。简单地使用EF不应该神奇地使它消失。
我们围绕现实世界的场景/实体设计我们的课程。那些场景/实体具有完全相同的问题。