我正在使用实体框架,这就是我的问题所在,但它可能不相关,因为我认为这是一个通用的 C# 问题。
我有一个MyContext有很多DbSet<T>属性的类。
为了对它进行单元测试,我编辑了 MyContext 所以这些都是IDbSet<T>并模拟了它。IDbSet<T>是实体框架的一部分,而 DbSet 实现了它,因此两者几乎相同。
一切都像这样很好,因为我可以做我能做的IDbSet<T>一切DbSet<T>
除了一件事之外的所有内容 -DbSet都有一个名为的方法SqlQuery(..),我也希望能够从我的IDbSet.
由于我无法更改DbSetor IDbSet,这给我留下了一个难题。我无法完全弄清楚我是如何做到的,所以我IDbSet能够以SearchQuery(..)某种合乎逻辑的方式添加一个方法。
那有意义吗?我很困惑,所以我可能忽略了一些非常简单的事情,例如复制和粘贴IDbSet以及重命名它并添加SearchQuery(). 有任何想法吗?