2013-08-03 60 views
5

EF 6是否允许在我的实体中进行依赖注入?以下是需要的一个例子。EF:实体依赖注入

class User 
{ 
    private IPasswordEncryptor _passwordEncryptor; 

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

    ... 
} 

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

+1

您可能需要重新考虑这一点。请参阅http://thinkbeforecoding.com/post/2009/03/04/How-not-to-inject-services-in-entities –

+3

实体与任何其他对象可能具有外部依赖关系。这只是OOP。从我的角度来看,像EF这样的框架不应该成为排除实体依赖的障碍。例如,NHibernate允许注入依赖关系。上面的例子是为什么需要这种依赖关系的一个很好的例子。用户负责管理密码。但是,用户不关心如何实现加密以及选择哪种算法。因此它取决于IPasswordEncryptor。 – Markus

+0

有没有找到一种方法来做到这一点马库斯?我有一个很不错的用例。 –

回答