我正在研究 winRT 和实体框架(到 SQL),它们之间通信的层是 WCF 服务。在实体框架中,我使用的是存储库模式,并且我有以下方法:
public IQueryable<User> GetBySearch(Expression<Func<User, bool>> search)
{
return this.Context.Users.Where(search);
}
一切正常,但是当我将它添加到 WCF
[OperationContract]
IQueryable<User> GetUserBySearch(Expression<Func<User, bool>> search);
和:
public IQueryable<User> GetUserBySearch(Expression<Func<User, bool>> search)
{
IUser user = new UserRepository();
return user.GetBySearch(search);
}
但是Expression不可序列化的问题,因此,WCF不能序列化它。所以我想从它继承并使其 [Serializable] 但它是一个密封类的问题。
有人可以帮我解决问题吗?