我正在研究 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]
但问题是它是一个密封的类。