这不是this post的重复,尽管标题有点类似,我借用了一些语言和示例模式。我也在VS2010上使用EF4和MSSQL 2008 SP1。
我的架构的简化版本如下:
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中运行良好。
也许有些东西我忽略了?
谢谢。