我可以将重复检查移动到MVC中的存储库吗?

时间:2011-12-13 02:10:14

标签: asp.net-mvc asp.net-mvc-3

我目前在服务层中有代码来检查重复的标题:

   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; }
}

1 个答案:

答案 0 :(得分:0)

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

通常,我更喜欢将所有业务逻辑保留在服务层中。我会按原样保留代码。

另一方面,如果你真的做了意味着存储库,那么由于同样的原因(在服务层和数据访问层混合业务逻辑),这不会是好的。