Это не дубликат этого поста , хотя название несколько схоже, и я позаимствовал немного языка и пример схемы.Я также использую EF4 с MSSQL 2008 SP1 на VS2010.
Упрощенная версия моей схемы выглядит следующим образом:
Table [Team]:
Id (PK)
Member1
Member2
Table [Person]:
Id (PK)
FirstName
[Team].Member1
и [Team].Member2
- внешние ключи, указывающие на [Person].Id
.
Фреймворк генерирует просто отлично (из схемы базы данных), но когда я делаю простой запрос LINQ на клиенте, я получаю исключение при расширении набора результатов в отладчике.
Вот запрос LINQ:
var teamResult = from t in context.Team select t;
Я могу просто запросить Person:
var personResult = from p in context.Person select p;
Вот детали исключения (боюсь, не очень полезные):
[System.InvalidOperationException] “An error occurred while processing this request.”
[System.SystemException] “An error occurred while processing this request.”
[System.Exception] “An error occurred while processing this request.”
InnerException =
<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>
<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">
<code></code>
<message xml:lang=\"en-US\">An error occurred while processing this request.</message>
...
</error>
Вот трассировка стека:
at System.Data.Services.Client.QueryResult.Execute()
at System.Data.Services.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents)
Кстати, устранение отношений между внешними ключами между двумя сущностями "исправило" проблему, но, очевидно, не является решением.
Запросы с использованием T-SQL прекрасно работают в SQL Server.
Может быть, я что-то упустил?
Спасибо.