Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何序列化System.Linq.Expressions?_C#_Linq_Wcf_Serialization - Fatal编程技术网

C# 如何序列化System.Linq.Expressions?

C# 如何序列化System.Linq.Expressions?,c#,linq,wcf,serialization,C#,Linq,Wcf,Serialization,我正在研究WinRT和实体框架(到SQL),它们之间的通信层是WCF服务 在实体框架中,我使用的是存储库模式,我有以下方法: public IQueryable<User> GetBySearch(Expression<Func<User, bool>> search) { return this.Context.Users.Where(search); } public IQueryable GetBySearch(

我正在研究WinRT和实体框架(到SQL),它们之间的通信层是WCF服务

在实体框架中,我使用的是存储库模式,我有以下方法:

    public IQueryable<User> GetBySearch(Expression<Func<User, bool>> search)
    {
        return this.Context.Users.Where(search);
    }
public IQueryable GetBySearch(表达式搜索)
{
返回this.Context.Users.Where(搜索);
}
一切正常,但当我将其添加到WCF时

    [OperationContract]
    IQueryable<User> GetEventBySearch(Expression<Func<User, bool>> search);
[运营合同]
IQueryable GetEventBySearch(表达式搜索);
以及:

public IQueryable GetEventBySearch(表达式搜索)
{
IUser user=new UserRepository();
返回user.GetBySearch(搜索);
}
但是,
表达式
不可序列化的问题,因此WCF无法序列化它


所以我想从它继承并使它
[Serializable]
,但问题是它是一个密封的类。

这根本没有意义。事实上,您试图在WCF服务上的WinRT客户端代码中执行func。那怎么行?我认为您必须定义自己的查询语言,并将其转换为服务上的表达式。

。。。你是真的吗?可能是复制品
    public IQueryable<User> GetEventBySearch(Expression<Func<User, bool>> search)
    {
        IUser user = new UserRepository();
        return user.GetBySearch(search);
    }