Я пытаюсь использовать WCF Data Service с Subsonic, но столкнулся с этой ошибкой, когда я пытаюсь получить доступ к моей "service.svc".У меня есть 2 проекта, один - это библиотека классов (называемая «OData»), в которой есть шаблоны Subsonic t4 для генерации классов для моей таблицы.Другим проектом является ASP.NET MVC2, который ссылается на проект «OData».
Затем я создаю новый элемент службы данных WCF внутри моего проекта ASP.NET MVC, который называется «service.svc», и указывает на мойКонтекст «TestDB», сгенерированный Subsonic, который я получил из проекта «OData».Я добавил этот атрибут в свой класс «service» для этой статьи: http://theruntime.com/blogs/jaykimble/archive/2008/11/18/quotsubsonicquot-for-services-found-subsonic-3--ado.net-data-services.aspx
Вот так выглядит мой класс обслуживания:
[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class Service : DataService<SymetraGivingDB>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
// config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
Когда я пытаюсь получить доступ к своему http://localhost/Service.svc, Я получаю эту ошибку:
Ошибка запроса
Сервер обнаружил ошибку при обработке запроса.
Сообщение об исключении: «Тип данных контекста» SymetraGivingDB', есть верхнее свойство IQueryable' Users ', тип элемента которого не является типом сущности.
Убедитесь, что свойство IQueryable относится к типу сущности, или укажите атрибут IgnoreProperties в типе контекста данных, чтобы игнорировать это свойство.'.Смотрите журналы сервера для более подробной информации.Трассировка стека исключений:
в System.Data.Services.Providers.ReflectionServiceProvider.PopulateMetadata (IDictionary 2
knownTypes, IDictionary
2 childTypes, IDictionary 2 entitySets)<br>
at System.Data.Services.Providers.BaseServiceProvider.PopulateMetadata()<br>
at System.Data.Services.DataService
1.CreateProvider ()
в System.Data.Services.DataService 1.HandleRequest()<br>
at System.Data.Services.DataService
1.ProcessRequestForMessage (Stream messageBody)
в SyncInvokeProcessRequestForMessage (Object, Object [], Object [])
в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (вход объекта, объект []]Объект [] и выходные данные)
в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 (MessageRpc & rcherl.ImmutableDispatchRuntime.ProcessMessage41 (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.PisserService.Rec.Rec.DRatchSPRecTimeSystemRec.PlayStimeTimeRatchSMRec_SignServer_Rec_Rec_Server_Rec_Server_Rec_Server_Rec_Server_Rec_Server_SignS_S_S_W_R_P_D_P_D_P_D_P_D_P_S_S_S,ImmutableDispatchRuntime.ProcessMessage3 (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2 (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.Prolis_Service.Rec.Rec.RecPlayStimeRecPlayServer_ImpService.ImpRackServer.ImmutableDispatchRuntime.ProcessMessage1 (MessageRpc & rpc)
в System.ServiceModel.Dispatcher.MessageRpc.Process (Boolean isOperationContextSet)
Ошибка упоминает о моей таблице «Пользователи», которая в основном имеет 3 столбца:Id / Name / Deleted, между таблицами есть некоторая взаимосвязь, и у всей моей таблицы в качестве идентификатора первичного ключа есть «Id».
Есть идеи, почему я получаю эту ошибку?
Спасибовам очень нравится.