Unity Of Work + 富域
Unity Of Work + Rich domain
我正在尝试使用工作单元实施丰富的模型。
public class User : BusinessBase, IUser
{
public int UserID { get; }
public string Name { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Token { get; set; }
public DateTime SigninDate { get; set; }
public DateTime LastLogin { get; set; }
public User(IUnityOfWork uow) : base(uow)
{
}
public void Create(User user)
{
Name = user.Name;
LastName = user.LastName;
Email = user.Email;
Password = user.Password; //TODO HASH
Token = GetToken();
SigninDate = DateTime.Now;
LastLogin = DateTime.Now;
Uow.User.Add(this);
}
}
构建运行正常,但在此 class 工作单元为空。
我确实有这个 class 的接口。
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();
}
在UnityConfig.cs,我注册了类型
container.RegisterType<IUser, User>();
为什么 Unit Of Work 没有被初始化,我该如何解决这个问题?
所以我发现了错误
我没有使用接口 IUser 来调用模型方法。
public class UsersController : ApiControllerBase
{
[HttpPost]
[AllowAnonymous]
public DtoResultBase CreateUser(User user)
{
return Resolve(() =>
{
user.Create(user);
user.Commit();
return new DtoResultBase();
});
}
现在在控制器中实现了接口:
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();
});
}
我正在尝试使用工作单元实施丰富的模型。
public class User : BusinessBase, IUser
{
public int UserID { get; }
public string Name { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string Token { get; set; }
public DateTime SigninDate { get; set; }
public DateTime LastLogin { get; set; }
public User(IUnityOfWork uow) : base(uow)
{
}
public void Create(User user)
{
Name = user.Name;
LastName = user.LastName;
Email = user.Email;
Password = user.Password; //TODO HASH
Token = GetToken();
SigninDate = DateTime.Now;
LastLogin = DateTime.Now;
Uow.User.Add(this);
}
}
构建运行正常,但在此 class 工作单元为空。
我确实有这个 class 的接口。
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();
}
在UnityConfig.cs,我注册了类型
container.RegisterType<IUser, User>();
为什么 Unit Of Work 没有被初始化,我该如何解决这个问题?
所以我发现了错误 我没有使用接口 IUser 来调用模型方法。
public class UsersController : ApiControllerBase
{
[HttpPost]
[AllowAnonymous]
public DtoResultBase CreateUser(User user)
{
return Resolve(() =>
{
user.Create(user);
user.Commit();
return new DtoResultBase();
});
}
现在在控制器中实现了接口:
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();
});
}