Вопрос

Я сталкиваюсь со странной ошибкой при использовании linq-to-sql со службами данных ado.net. У меня есть простое приложение Silverlight, которое подключается к удаленной базе данных. Сначала я добавил класс linq-to-sql и перетащил таблицу в конструктор. Затем я добавил службу данных ADO.NET, обновил ссылку на DataService, чтобы указать на контекст данных L2S.

Скомпилировано без проблем.

Когда я открываю сервис в IE, я сразу же получаю сообщение об ошибке, поэтому я добавляю в сервис данных следующий атрибут:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]

Это приводит к подробному сообщению об ошибке:

  

Сообщение об исключении: «Для типа контекста данных« DataClasses1DataContext ») существует верхнее свойство IQueryable« table1 », тип элемента которого не является типом сущности. Убедитесь, что свойство IQueryable относится к типу сущности, или укажите атрибут IgnoreProperties для типа контекста данных, чтобы игнорировать это свойство

это происходит с любой таблицей базы данных, которую я использую в конструкторе L2S!

Что это за ошибка и почему я ее получаю?

Это было полезно?

Решение

Вам нужно будет украсить свои классы атрибутом DataServiceKey.

Подробнее о блоге Марка здесь и блог MSDN здесь (последний говорит о многих отношениях, но он охватывает атрибут DatServiceKey).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top