2009-02-23 10 views
2

Nous essayons de créer une API fraîche avec WCF et ICriteria, par exemple:WCF OperationContract et Nhibernate ICriteria

[ServiceContract] 
public class ProductService 
{ 
[OperationContract] 
public List<Product> Get() 

[OperationContract] 
public List<Product> GetByCriteria(Criteria criteria) 

} 

Nous pensons à l'aide de la DetachedCriteria pour que chacun puisse envoyer et nous connecter à la session dans le service pour exécuter la requête en face de notre base de données.

Y at-il quelqu'un qui crée une telle API? Devrions-nous utiliser l'ICriteria de Nhibernate? D'autres idées cool?

Merci.

Répondre

3

Ce n'est pas cool API. C'est orienté objet, pas orienté service. Et ça ne marchera pas.

Vous devrez utiliser KnownTypeAttribute (ou ServiceKnownTypeAttribute) pour les requêtes polymorphes. (Voir this question).

Aussi ce n'est pas une solution très élégante et je vous découragerais de cela. Soyez explicite dans Service World.

+0

Pouvez-vous m'envoyer un meilleur exemple? – rabashani

+0

Ne soyez pas trop générique et n'encombrez pas vos services WCF avec d'autres codes d'infrastructure. Rendez votre service spécifique et explicite. GetProductsByColor, ou GetProductsByTypeAndPriceRange sont de bons exemples. –