我目前在服务层中有代码来检查重复的标题:
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 :(得分:0)
如果您的意思是视图模型而不是存储库(因为您包含了您的帐户视图模型的代码),是的,它是从服务层移动代码的选项,因为验证仅涉及帐户。但是,这意味着某些业务逻辑将位于视图模型中,而其他业务逻辑将位于服务层中。
通常,我更喜欢将所有业务逻辑保留在服务层中。我会按原样保留代码。
另一方面,如果你真的做了意味着存储库,那么由于同样的原因(在服务层和数据访问层混合业务逻辑),这不会是好的。