我们正在尝试使用WCF和ICriteria创建一个很酷的API,例如:
[ServiceContract]
public class ProductService
{
[OperationContract]
public List<Product> Get()
[OperationContract]
public List<Product> GetByCriteria(Criteria criteria)
}
我们正在考虑使用DetachedCriteria,因此任何人都可以发送它,我们将其连接到服务中的Session以运行我们数据库的查询。
有没有人创建这样的API? 我们应该使用Nhibernate的ICriteria吗? 还有其他很酷的想法吗?
感谢。
答案 0 :(得分:3)
这不是很酷的API。它是面向对象的,而不是面向服务的。它不起作用。
您必须使用KnownTypeAttribute(或ServiceKnownTypeAttribute)进行多态查询。 (见this问题)。
这也不是一个非常优雅的解决方案,我会劝阻你。在服务世界中要明确。