2013-08-03 7 views
5

Ermöglicht EF 6 die Abhängigkeitsinjektion in meinen Entitäten? Unten ist ein Beispiel dafür, was benötigt wird.EF: Entitätsabhängigkeitsinjektion

class User 
{ 
    private IPasswordEncryptor _passwordEncryptor; 

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

    ... 
} 

Also, ich brauche einen Weg zu finden, den IPasswordEncryptor in Benutzer in Entity Framework zu injizieren. Es ist eine allgemeine Frage, ich habe oben nur ein Beispiel gegeben.

+1

Vielleicht möchten Sie dies noch einmal überdenken. Siehe http://thinkbeforecoding.com/post/2009/03/04/How-not-to-inject-services-inentities –

+3

Entitäten als andere Objekte möglicherweise externe Abhängigkeiten. Es ist nur OOP. Aus meiner Sicht sollte ein gegebener Rahmen wie EF kein Hindernis für den Ausschluss von Entitätsabhängigkeiten sein. NHibernate zum Beispiel ermöglicht das Injizieren der Abhängigkeiten. Das obige Beispiel ist ein gutes Beispiel dafür, warum diese Abhängigkeit benötigt wird. Der Benutzer ist verantwortlich für die Verwaltung des Passworts. Der Benutzer ist jedoch nicht besorgt, wie die Verschlüsselung implementiert wird und welcher Algorithmus gewählt wird. Daher kommt es auf IPasswordEncryptor an. – Markus

+0

Hast du jemals einen Weg gefunden, es zu tun, Markus? Ich habe einen ziemlich guten Anwendungsfall. –

Antwort

2

Bei Verwendung eines DI-Containers versuchen Sie möglicherweise, die -Abhängigkeiten in das aggregierte Stammverzeichnis zu injizieren. Das führt zu einer ganzen Reihe von Problemen, die so zahlreich sind, dass ich nicht einen perfekten Post entgleisen werde, indem ich hineingehe. Stattdessen gibt es eine andere, mehr Absicht-aufdeckende Option: das doppelte Versandmuster.

Zitat aus einem Beitrag von Jimmy Bogard. Finden Sie diesen Beitrag (der ein Beispiel enthält) hier: http://lostechies.com/jimmybogard/2010/03/30/strengthening-your-domain-the-double-dispatch-pattern/.