2016-04-23 7 views
0

Ich versuche, ein reiches Modell mit Unit of Work zu implementieren.Einheit der Arbeit + Rich-Domäne

Der Build läuft ok, aber in dieser Klasse ist die Arbeitseinheit null.

Ich habe eine Schnittstelle mit dieser Klasse.

interface IUser: ICommitable 
    { 
     void Create(User user); 
     void Delete(); 
     void EditName(string name); 
     void EditLastName(string lastName); 
     void EditEmail(string email); 
     void EditPassword(string password); 
     void GenerateToken(); 
     string GetToken(); 
     void UpdateLoginDate(); 
    } 

und bei UnityConfig.cs, melde ich mich an die Art

container.RegisterType<IUser, User>(); 

Warum Einheit ist nicht von der Arbeit nicht initialisiert wird, und wie kann ich dieses Problem lösen?

+0

Haben Sie sich registriert 'IUnityOfWork' mit dem Behälter? – Nkosi

+0

Ja, container.RegisterType (); –

Antwort

0

So habe ich den Fehler gefunden Ich habe nicht die Schnittstelle IUser verwendet, um die Modellmethode aufzurufen.

public class UsersController : ApiControllerBase 
    { 


     [HttpPost] 
     [AllowAnonymous] 
     public DtoResultBase CreateUser(User user) 
     { 
      return Resolve(() => 
      { 
       user.Create(user); 
       user.Commit(); 
       return new DtoResultBase(); 
      }); 
     } 

Jetzt mit der Schnittstelle in der Steuerung implementiert:

public class UsersController : ApiControllerBase 
    { 

     private IUser UserBusiness; 

     public UsersController(IUser userBusiness) 
     { 
      UserBusiness = userBusiness; 
     } 


     [HttpPost] 
     [AllowAnonymous] 
     public DtoResultBase CreateUser(User user) 
     { 
      return Resolve(() => 
      { 
       UserBusiness.Create(user); 
       UserBusiness.Commit(); 
       return new DtoResultBase(); 
      }); 
     } 
Verwandte Themen