将多个外键映射到表时无法使用实体框架进行查询

时间:2011-04-05 22:52:36

标签: entity-framework

这不是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中运行良好。

也许有些东西我忽略了?

谢谢。

0 个答案:

没有答案