您的存储库层应该对您的域有多少了解?

时间:2010-02-08 12:02:31

标签: c#

在处理存储库时,我通常会尝试保持该方法非常通用,但这有时会导致调用更长的方法,或者在服务层创建更具体命名的方法。我的问题是,您的域名应该对您的域名有多少了解?

例如,我目前有一个方法如下:

public User GetUniqueByRoleAndRoleProperty<TRole>(string propertyName, object propertyValue)
    {
        ...
    }

我用它来拉回具有特定角色和属性的用户,但它是否会为存储库提供太多知识以获得如下方法:

public User GetArtistBySlug(string slug)
{
    ...
}

1 个答案:

答案 0 :(得分:2)

它应该有足够的知识来完成它的工作,而不是更多。如果“slug”是“艺术家”记录的属性,那么通过slug查找艺术家是很好的,因为该层已经知道了。如果向艺术家分配slu to遵循复杂,复杂的规则(想象纹章或类似的东西),那么存储库就不应该实现这些规则,除非你绝对必须使用只能在这个级别上工作的聪明的优化,例如:特殊的数据库查询结构。