【发布时间】:2014-06-18 23:28:34
【问题描述】:
我想知道将模型用作存储库是否正确。原因是它会更简单,并且在某些情况下会更有意义。我不确定这是否是最好的做事方式,所以也许有人可以指出我的方向是否正确。
示例
你有Account,每个Account 都会有Sessions 和Projects。现在做acc.AddProject("new project") 和acc.DeleteProjectById(3) 之类的事情而不是在控制器中拉取存储库并浪费代码空间不是更明智吗?
这是我到目前为止所拥有的,我想知道我是否会朝着正确的方向前进。
public class Account
{
public ObjectId Id { get; set; }
public string Email { get; set; }
public string PasswordHash { get; set; }
public string PasswordSalt { get; set; }
public IQueryable<Project> Projects
{
get
{
var kernel = NinjectWebCommon.Bootstrapper.Kernel;
var projectRepository = kernel.Get<IProjectRepository>();
return projectRepository.GetByAccountId(Id);
}
}
public IQueryable<AccountSession> Sessions
{
get
{
var kernel = NinjectWebCommon.Bootstrapper.Kernel;
var sessionRepository = kernel.Get<IAccountSessionRepository>();
return sessionRepository.GetByAccountId(Id);
}
}
public Project AddProject(string name, string description)
{
var kernel = NinjectWebCommon.Bootstrapper.Kernel;
var projectRepository = kernel.Get<IProjectRepository>();
return projectRepository.Add(name, description, Id.ToString());
}
public AccountSession AddSession(string ip, string hash, string salt)
{
var kernel = NinjectWebCommon.Bootstrapper.Kernel;
var sessionRepository = kernel.Get<AccountSessionRepository>();
return sessionRepository.Add(Id.ToString(), ip, hash, salt);
}
}
【问题讨论】:
标签: c# model-view-controller coding-style standards