【问题标题】:Do Navigation Properties in the Entity Framework Break The Law Of Demeter?实体框架中的导航属性是否违反了得墨忒耳定律?
【发布时间】:2012-07-09 15:47:53
【问题描述】:

我相信这是我要问的一个明确的是/否问题,无论实施如何,它要么违法,要么不违法。所以我的问题是,在实体框架模型中创建的导航属性是否违反了得墨忒耳定律?我认为他们这样做是因为一个实体可能拥有太多的知识和对其导航属性实例的访问权限,如下所示:

Orders.Products.Price

在上面的代码Orders 中,在包含导航属性Products 的主实体中。通常,我们必须深入了解该导航属性以访问该相关对象的详细信息。我假设拥有实例属性通常也不会违反法律吗?

帮助解决这个问题会很有帮助,谢谢!

【问题讨论】:

标签: entity-framework oop law-of-demeter


【解决方案1】:

是的,但没关系。严格遵循得墨忒耳定律几乎是不可能的——你必须做出妥协以保持高设计质量、高代码质量、可维护性和可读性。 EF 提出了附加要求,这些要求主要与 EF 如何在对象和数据库记录之间进行映射有关。某些类型的映射 (EDMX) 允许您更改实体属性的可见性,以便您可以在内部或受保护的属性之上构建自己的抽象层,但您可能会丢失一些 EF 功能。

如果您对得墨忒耳定律和 ORM 工具感兴趣,您还应该查看领域驱动设计和聚合根。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多