在哪里放置“类型”使用通用存储库时的特定功能
我想知道使用通用存储库模式时放置特定于类型的函数的最佳位置是在哪里。
我的通用 Repository
具有 GetMany() 等方法,但是放置特定于类型的函数的最合理位置在哪里?
一个简单的例子是,假设我有一个“用户”类型,并且我想要一个函数,它不会返回用户的名字/姓氏并要求我在返回对象集时将它们粘合在一起,而是可以返回 名字 + " " + 姓氏
作为'用户名
'。
我继承的以前的非存储库模式实现使用 EF 类型上的部分类来提供这些扩展方法,但我有点不确定在使用存储库时将这些类型的函数移动到哪里。
任何想法都会有很大的帮助,
干杯,
道格
I'm wondering where the best place to put Type specific functions is when using a generic repository pattern.
My generic Repository<T>
has methods for things like GetMany() etc, but where is the most sensible location to place functions specific to a Type?
A simple example would be, say I have a 'User' type and I want a function, which instead of bringing back the firstname / lastname of the user and requiring me to glue them together when the object set is returned, could return FirstName + " " + LastName
as 'Username
'.
The previous non repository pattern implementation I've inherited used partial classes on the EF types to provide these extension methods, but I'm a little unsure where to move these type of functions to when using the respository.
Any ideas would be a big help,
Cheers,
Doug
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
下面的链接解释了如何指定选择,而不是扩大通用存储库的契约,常见的技术是对通用存储库进行子类化以实现特定的存储库
EF POCO
您可以将您的函数添加为用于 NewlySubscribed() 的函数
The below link explains how to specify selection, instead of widening the contract of generic repository, the common technique is to subclass the generic repository to implement a specific repository
EF POCO
you can add your function as the one used for NewlySubscribed()
我创建了类似的东西,但我所有类型特定的东西都在派生自
Repository
的子类中。通用的东西应该保持通用。类型特定的东西成为类型化的存储库。I have created something similar, but all my type specific stuff is in sub classes that derive from
Repository<T>
. Generic stuff should remain generic. Type specific stuff becomes a typed repo.