0

次のコードを実行すると実行時エラーが発生しました: (vb.net)

dim q = (From x in db.T1
         select x.F11, x.F12).Union( _
        (From y in db.T2
         select y.F21, y.F22)

F11 と F21 は同じタイプです。F21 と F22 は同じタイプです。

実行時エラーは、「(匿名型の) DataQuery から (匿名型の) iEnumerable にキャストできません...

4

2 に答える 2

0

Union匿名型で動作するはずです。コンパイラは、2 つの匿名型を同じに扱うのに十分なほどインテリジェントです。トウテーブルのデータベースでフィールドタイプを再確認してください。それらはまったく同じである必要があります

これを確認するには、同じテーブルでユニオンを試すことができます

(From x in db.T1
         select FIRST=x.F11, SECOND=x.F21).Union( _
        (From y in db.T1
         select FIRST=y.F11, SECOND=y.F21)
于 2012-09-06T09:26:14.687 に答える
0

Anonymous型の使用がUnionで許可されていることを理解しまし- 次の例のように、ユニオン クエリでフィールドNAMETYPEが同じである
ことを確認するだけで済みます。

dim q = (From x in db.T1
         Select FIRST = x.F11, LAST = x.F12).Union _
        (From y in db.T2
         Select FIRST = y.F21, LAST = y.F22) 

F11 と F21 は同じタイプです。F12、F22は同型

于 2012-09-06T17:27:13.827 に答える