重用在可移植类库中创建的LINQ表达式

时间:2012-08-08 21:21:57

标签: c# .net windows-phone-7 compiled-query portable-class-library

是否可以在可移植类库中创建LINQ表达式并在应用程序的其他部分重用该表达式?对我来说,一个方便的用例是在不同平台的CompiledQuerys中使用这些表达式,而不是多次复制/粘贴相同的代码。

到目前为止,我所有的尝试最终都抛出了一些或多或少无意义的运行时异常(NullReferenceException,未找到列...)。我猜测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);
    }
}

1 个答案:

答案 0 :(得分:-1)

这样的事情怎么样?

var commonExpressions = new Dictionary<CommonRegEx, Regex>();

public enum CommonRegEx{
   Phone,
   Email,
   SSN
}