【问题标题】:EF: Entity Dependency injectionEF:实体依赖注入
【发布时间】:2013-08-03 11:45:45
【问题描述】:

EF 6 是否允许在我的实体中进行依赖注入?以下是所需内容的示例。

class User
{
    private IPasswordEncryptor _passwordEncryptor;

    public User(IPasswordEncryptor passwordEncryptor)
    {
       _passwordEncryptor = passwordEncryptor;
    }

    ...
}

所以,我需要找到一种方法将 IPasswordEncryptor 注入到实体框架中的用户中。这是一个普遍的问题,我只是在上面提供了一个示例。

【问题讨论】:

  • 您可能需要重新考虑这一点。见thinkbeforecoding.com/post/2009/03/04/…
  • 实体作为任何其他对象可能具有外部依赖关系。这只是 OOP。在我看来,像 EF 这样的给定框架不应该成为排除实体依赖项的障碍。例如,NHibernate 允许注入依赖项。上面的例子是一个很好的例子,为什么需要这种依赖。用户负责管理密码。但是,用户并不关心加密是如何实现的以及选择什么算法。因此它依赖于 IPasswordEncryptor。
  • 有没有找到解决办法 Markus?我有一个很好的用例。

标签: entity-framework orm domain-driven-design


【解决方案1】:

对于那些使用 DI 容器的人,您可以尝试注入 依赖于聚合根。这导致了一大堆 问题太多了,我不会破坏一个完美的帖子 通过进入它。相反,还有另一个,更多 意图揭示选项:双重调度模式。

引自 Jimmy Bogard 的帖子。在此处找到该帖子(包括示例):http://lostechies.com/jimmybogard/2010/03/30/strengthening-your-domain-the-double-dispatch-pattern/

【讨论】:

    猜你喜欢
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多