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>

ただし、2 行目のデータが含まれていないため、2 行目は行/オブジェクトを正しく逆シリアル化していないように見えます。

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

なぜこれが考えられるのでしょうか?

更新:ビュー内の UNION が原因であることが判明しました。行は 2 つの異なるテーブルから結合されており、何らかの理由で、EF は 2 番目のテーブルを最初のテーブルへの参照として扱っています。おそらくこれは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 が原因であることが判明しました。行は 2 つの異なるテーブルから結合されており、何らかの理由で、EF は 2 番目のテーブルを最初のテーブルへの参照として扱っています。おそらくこれは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 に答える