是否可以在可移植类库中创建 LINQ 表达式并在应用程序的其他部分重用该表达式?对我来说,一个方便的用例是在 CompiledQuerys 中跨平台使用这些表达式,而不是多次复制/粘贴相同的代码。
到目前为止,我所有的尝试最终都抛出了一些或多或少毫无意义的运行时异常(NullReferenceException
, Column not found..)。我猜 PCL 中的 LINQ 表达式的处理方式与 WP 应用程序中的处理方式不同?
public class SomeClassNotInPCL
{
private static readonly Func<Context, int, MyClass> CompiledQuery =
CompiledQuery.Compile(ClassFarAway.MethodInsidePCL());
}
public class ClassFarAway
{
private static Expression<Func<IContext, int, MyClass>> MethodInsidePCL()
{
return (context, id) => context.MyClass.FirstOrDefault(m => m.Id == id);
}
}