2012-03-12 5 views
3

少なくとも1つのチャート、アイテム、およびチャートが1から多くのリレーションを持つアイテムを取得しようとしています。EntityDataSource whereアソシエーションカウント> 0

私はこれしようと試み:

<asp:EntityDataSource ID="EntityDataSource1" ContextTypeName="Entities" 
EntitySetName="Items" Where="Count(it.ItemCharts) > 0" runat="server" /> 

をしかし、私はエラーメッセージを取得:

正規の集約関数のいかなる過負荷が 'Edm.Count' の引数と互換性がありません...

コードを使用しないでこれを行うにはどうすればよいですか?

ありがとうございました!

+0

私は、[同様の質問](http://stackoverflow.com/questions/6917481/how-to-add-を見つけましたentity-table-in-entitydatasource)、それは答えられていません:/ – JoRouss

答えて

4

あなたはコレクション/関連が空であるかどうかを判断するためにEXISTSを使用する必要があります。

<asp:EntityDataSource ID="EntityDataSource1" ContextTypeName="Entities" 
EntitySetName="Items" Where="EXISTS(it.ItemCharts)" runat="server" /> 
+0

作品!私の知る限りでは、少なくとも2つのチャートを持つアイテムが欲しいのですが? – JoRouss

+1

理論的に 'Where ="(SELECT COUNT(0)FROM it.Charts)> 2 "と書く必要がありますが、サポートされていないようです。サポートされている比較については、[この表](http://msdn.microsoft.com/en-us/library/bb896323.aspx)も参照してください。 – nemesv

関連する問題