WCF RIA Общий запрос на стороне сервера? - PullRequest
3 голосов
/ 18 мая 2011

Возможно ли иметь общий запрос на стороне сервера, подобный следующему?

public IQueryable<TContact> GetContactsOfType<TContact>()
  where TContact : Contact
{
  return ObjectContext.Contacts.OfType<TContact>();
}

Я хочу, чтобы RIA распознал и сгенерировал для меня этот запрос в клиентском проекте.

Примечание: Contact - это абстрактный класс, имеющий несколько подклассов. Я использую Entity-Framework сгенерированный EntityObject s.

Ошибка, которую я получаю при попытке компиляции: Type 'TContact' is not a valid entity type. Entity types must have a default constructor.

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

По умолчанию Службы RIA WCF не предоставляют общие методы службы домена для вызова клиентом.RIA строго типизирован, чтобы было проще рассуждать о поведении.

Но, похоже, существует обходной путь с определением вашего для DomainOperationEntry и пользовательского DomainServiceDescriptionProvider.Колин Блэр опубликовал ответ здесь .Это похоже на то, что вы ожидаете.

Обновление : я попробовал то, что вы хотите, в моем проекте silverlight и определил общий метод запроса в моей доменной службе.Проект успешно компилируется, но универсальный параметр на клиентской стороне опущен.

1 голос
/ 19 мая 2011

Вместо этого я бы предложил использовать текстовый шаблон генератора EF для создания операций RIA Services для каждой сущности. И используйте шаблон имени, например, как RIA Services использует «Get» <Type> Query, и другие методы.

...