我只需要切换一个ORM,这是一个相对艰巨的任务,因为查询逻辑到处都有泄漏。如果我不得不开发一个新的应用程序,我个人的喜好是封装所有查询逻辑(使用ORM)以对它进行将来的更改。存储库模式很难编码和维护,因此我想知道是否还有其他模式可以解决问题?
我可以预见到有关在实际需要时不增加额外复杂性,敏捷性等方面的帖子,但是我只对以更简单的方式解决类似问题的现有模式感兴趣。
我的第一个想法是拥有一个通用类型存储库,通过扩展方法,我可以根据需要向特定类型存储库类添加方法,但是对静态方法进行单元测试非常痛苦。IE浏览器:
public static class PersonExtensions
{
public static IEnumerable<Person> GetRetiredPeople(this IRepository<Person> personRep)
{
// logic
}
}