所以这是场景:我有一系列不同的存储库类,每个类都可以使用独立的数据上下文或共享上下文.在使用隔离上下文的情况下,我想向基类添加一个方法,允许我将lambda指定为参数,让该表达式由所选存储库的隔离上下文执行并返回IQueryable结果.方法签名看起来如何,以及如何将表达式传递给上下文?
我需要解决方案尽可能通用,因为可以使用任何可能的模型对象/表.
这基本上是我要做的事情:
IAssetRepository repo = new AssetRepository(true); // true indicates isolated context
var results = repo.ExecuteInContext<SomeType>(SomeTable.Where(x =>
x.SomeProp.Equals(SomeValue)));
Run Code Online (Sandbox Code Playgroud)