0

我有一个返回如下数据的视图:

1 | 阿比塔 | 空 | http://www.abita.com/
2 | 阿比塔 | 修道院啤酒 | http://abita.com/brews/abbey_ale.php

我正在使用 WCF REST 通过实体框架对象获取此视图的 xml 表示。在浏览器中以 xml 格式查看返回的数据时,第一行显示的数据符合我的预期:

    <vw_Url z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
- <EntityKey z:Id="i2" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data">
  <a:EntityContainerName>FierceBeersEntities</a:EntityContainerName> 
- <a:EntityKeyValues>
- <a:EntityKeyMember>
  <a:Key>Brewery</a:Key> 
  <a:Value i:type="b:string" xmlns:b="http://www.w3.org/2001/XMLSchema">Abita</a:Value> 
  </a:EntityKeyMember>
  </a:EntityKeyValues>
  <a:EntitySetName>vw_Url</a:EntitySetName> 
  </EntityKey>
  <Beer i:nil="true" /> 
  <Brewery>Abita</Brewery> 
  <RowId>1</RowId> 
  <Url>http://www.abita.com/</Url> 
  </vw_Url>

但是,第二行似乎没有正确反序列化行/对象,因为它不包含第二行的数据。

<vw_Url z:Ref="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" /> 

知道为什么会这样吗?

更新:我已经追踪到这是由视图中的 UNION 引起的。这些行从两个不同的表联合在一起,出于某种原因,EF 将第二个表视为对第一个表的引用。也许这是一个 EF 错误?任何解决方法的想法?

听起来这可能是 EF 1.0 中的一个 EF 错误/限制。 http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/9293cf4d-deef-40b1-ab56-a0ee1e770dd9 但是,我使用的是 EF 4.0,它似乎仍然是一个问题。叹...

4

1 回答 1

0

更新:我已经追踪到这是由视图中的 UNION 引起的。这些行从两个不同的表联合在一起,出于某种原因,EF 将第二个表视为对第一个表的引用。也许这是一个 EF 错误?

听起来这可能是 EF 1.0 中的一个 EF 错误/限制。http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/9293cf4d-deef-40b1-ab56-a0ee1e770dd9但是,我使用的是 EF 4.0,它似乎仍然是一个问题。叹...

于 2010-12-03T15:04:22.087 回答