2009-02-23 2 views
2

Мы пытаемся создать прохладный API с использованием WCF и ICriteria, например:WCF OperationContract и Nhibernate ICriteria

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

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

} 

Мы думаем, используя DetachedCriteria, так что каждый может отправить его, и мы подключить к сессии в службе для запуска Query infront нашей БД.

Есть ли кто-нибудь, кто создает такой API? Должны ли мы использовать ICriteria от Nhibernate? Любые другие интересные идеи?

Спасибо.

ответ

3

Это не крутой API. Он ориентирован на объекты, а не ориентирован на обслуживание. И это не сработает.

Для полиморфных запросов вам придется использовать KnownTypeAttribute (или ServiceKnownTypeAttribute). (см. this вопрос).

Также это не очень изящное решение, и я бы отговорил вас от этого. Будьте ясны, когда в World Service.

+0

Можете ли вы прислать мне лучший пример? – rabashani

+0

Не будьте слишком универсальны и не загромождаете ваши службы WCF другим кодом инфраструктуры инфраструктуры. Сделайте свой сервис конкретным и явным. Хорошие примеры - GetProductsByColor или GetProductsByTypeAndPriceRange. –

Смежные вопросы