gpt4 book ai didi

entity-framework - Entity Framework 对象物化和依赖注入(inject)

转载 作者:行者123 更新时间:2023-12-04 08:32:22 26 4
gpt4 key购买 nike

我希望能够在 Entity Framework 加载和具体化实体后(例如作为查询的结果)将一些依赖项(通过使用 IoC 容器)注入(inject)到实体中。

可以通过 Hook ObjectMaterialized 来实现事件,但我想知道是否没有更好的方法来实现这一点,因为我首先使用 EF 6 和代码。

有什么建议或想法吗?

谢谢

丽安娜

最佳答案

虽然可以配置 Entity Framework 以允许将依赖项注入(inject)到实体中,但我认为可以肯定地说一般共识(看看 Jimmy BogardMark Seemannme 的意见)是根本不要这样做。

对我来说,要点是像实体、DTO 和消息这样的类与服务类非常不同。实体、DTO 和消息是包含运行时数据的短期对象,而服务包含行为,通常是长期的并且只处理运行时数据(例如实体)。

但这并不意味着您不能在您的实体中使用服务。正如马克所描述的那样 here ,不让您的实体使用服务导致 Anemic Domain Model .但这意味着实体不应该是对象图的一部分。

相反,如果您正在实践 DDD,您的实体可以简单地接受您在实体上定义的域方法中的依赖项。这些依赖项可以由 command handlers 提供执行用例。换句话说,依赖项被注入(inject)到命令处理程序的构造函数中,当调用实体的域方法时,命令处理程序将向该方法提供该方法所需的依赖项(通常只是一两个)(方法注入(inject))。

关于entity-framework - Entity Framework 对象物化和依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com