Службы данных WCF и EF 4 CTP 5 POCO - Невозможно преобразовать Невозможно преобразовать объект типа '... DbQuery' в тип 'System.Linq.IQueryable` - PullRequest
1 голос
/ 31 января 2011

Я получил это сообщение об ошибке при запросе 50 верхних строк в таблице. Мой проект использует Entity Framework 4 CTP 5 POCO:

Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery' to type 'System.Linq.IQueryable`1[Lib.Model.Post]'

Мои модели были основаны на этом ответе: Entity Framework 4 CTP 4 / CTP 5 Общий шаблон репозитория и тестируемый модуль

Есть идеи, как исправить эту ошибку?

Спасибо.

1 Ответ

2 голосов
/ 31 января 2011

После изменения контекста DataService и переопределения ObjectContext, сервис теперь работает.Вот что я изменил в случае, если кто-то также столкнется с той же проблемой:

public class KennyService : DataService<MyDataContext>
{
    // Codes
}

до

public class KennyService : DataService<System.Data.Objects.ObjectContext>
{
    // Codes
}

protected override ObjectContext CreateDataSource()
{
    var context = ((IObjectContextAdapter)new Lib.MyDataContext()).ObjectContext;
    context.ContextOptions.ProxyCreationEnabled = false;

    return context;
}
...