0

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

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

    public IQueryable<User> GetBySearch(Expression<Func<User, bool>> search)
    {
        return this.Context.Users.Where(search);
    }

一切正常,但是当我将它添加到 WCF

    [OperationContract]
    IQueryable<User> GetEventBySearch(Expression<Func<User, bool>> search);

和:

    public IQueryable<User> GetEventBySearch(Expression<Func<User, bool>> search)
    {
        IUser user = new UserRepository();
        return user.GetBySearch(search);
    }

但是Expression<TDelegate>就是不可序列化的问题,因此,WCF不能序列化它。

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

4

1 回答 1

1

这根本没有意义。实际上,您尝试在 WCF 服务上执行 WinRT 客户端代码中的函数。那应该如何工作?我认为您必须定义自己的查询语言,并将其翻译为服务上的表达式。

于 2013-08-09T10:07:23.280 回答