2011-12-13 41 views
0

我现在有代码在我的服务层中是否有重复的标题:我可以将重复检查移动到MVC中的存储库吗?

protected bool ValidateAccount(Account account) 
    { 
     var accounts = _accountRepository.GetPk(account.PartitionKey); 
     if (accounts.Any(b => b.Title.Equals(account.Title) && 
           !b.RowKey.Equals(account.RowKey))) 
      _validationDictionary.AddError("", "Duplicate title"); 
     return _validationDictionary.IsValid; 
    } 

有人可以解释,如果我可以将此代码移动到我的仓库。目前,我有一个看起来像这样:

public class Account 
{ 
    public string PartitionKey { get; set; } 
    [Required(ErrorMessage="Title required")] 
    [DisplayName("Title")] 
    public string Title { get; set; } 
} 

回答

0

如果你的意思是视图模型,而不是存储库(因为你包括你的帐户视图模型的代码),是的,它是从服务层移动代码,因为选项验证只涉及帐户。但是,这意味着一些业务逻辑将处于视图模型中,而其他业务逻辑将处于服务层中。

通常,我更愿意将所有业务逻辑放在服务层中。我会离开代码。另一方面,如果你确实意味着存储库,那么不会出于同样的原因(混合服务层和数据访问层中的业务逻辑),这不会很好。

相关问题