C# repo方法命名约定
我正在为新应用程序中的存储库层创建一个参考模型。我从UserRepository开始。我喜欢在repo级别遵循CRUD(Create-Read-Update-Delete)命名约定。对于GetById方法来说,这感觉很自然:C# repo方法命名约定,c#,design-patterns,architecture,data-access-layer,C#,Design Patterns,Architecture,Data Access Layer,我正在为新应用程序中的存储库层创建一个参考模型。我从UserRepository开始。我喜欢在repo级别遵循CRUD(Create-Read-Update-Delete)命名约定。对于GetById方法来说,这感觉很自然: 公共用户读取(int-userId) 对于搜索方法来说,似乎感觉不那么自然: 公共列表读取(用户查询) 您是否曾经尝试过为您的存储库遵循CRUD命名约定?您是按照我上面定义的第二个方法签名的方式定义搜索方法签名,还是遵循不同的命名约定?我想给出我的存储库。类似于Add(),
公共用户读取(int-userId)
对于搜索方法来说,似乎感觉不那么自然:
公共列表读取(用户查询)
您是否曾经尝试过为您的存储库遵循CRUD命名约定?您是按照我上面定义的第二个方法签名的方式定义搜索方法签名,还是遵循不同的命名约定?我想给出我的存储库。类似于
Add()
,Remove()
和一系列Get()
不一定是Update()
,因为告诉集合更新元素没有多大意义,所以通常从集合中获取对象,然后直接修改它
这来自于域驱动的设计视角,其中存储库的原始定义是内存集合的幻觉。存储库接口是在域层定义的,因此它不应该有任何与持久性相关的引用
简单地说,存储库只是一个包,您可以查看、添加和删除它
Search()
非常适合这一愿景。您还可以使用使搜索条件更加流畅和可重用。我喜欢提供我的存储库。类似于Add()
,Remove()
和一系列Get()
不一定是Update()
,因为告诉集合更新元素没有多大意义,所以通常从集合中获取对象,然后直接修改它
这来自于域驱动的设计视角,其中存储库的原始定义是内存集合的幻觉。存储库接口是在域层定义的,因此它不应该有任何与持久性相关的引用
简单地说,存储库只是一个包,您可以查看、添加和删除它
Search()
非常适合这一愿景。您还可以使用使搜索条件更加流畅和可重用。值得一读:值得一读: