0

最初のクエリでは、ID のステップのリストをクエリします。次のクエリでは、そのクエリに new Query と C_S_Is_Button の ID が含まれているかどうかを確認します。しかし、私は以下のこのエラーを受け取ります。このサイトで同様の問題を見たことがありますが、問題に解決策を実装する方法がわかりません。

エラー:

メソッド 'System.Linq.Enumerable.Contains(System.Collections.Generic.IEnumerable, TSource)' の型引数は、使用法から推測できません。型引数を明示的に指定してみてください。

最初のクエリ

var QcheckA = from csd in l.LCSDatas
                join cls in l.LCSteps on csd.C_S_ID equals cls.C_S_ID
                join cde in lol.LCDefinitions on csd.C_S_ID equals cde.C_S_ID
                where csd.A_ID == _AID && cde.C_ID == data.C_ID
                select new 
                {
                    csd.C_S_ID
                };     

C ステップ。ボタンがクリックされていない最下位のステップを見つけます。

var QSID = (from cd in l.LCDefinitions
               join cs in l.LCSteps on cd.C_S_ID equals cs.C_S_ID                           
               where cs.C_S_Is_Button == true
                  && cd.C_ID == data.C_ID                              
                  && !QcheckA.Contains(cd.C_S_ID) //Error Here
               orderby cd.C_S_Order ascending
               select new
               {
                   cd.C_S_ID
               }).Take(1);

var SID = QSID.SingleOrDefault();

この状況に対する提案はありますか?ありがとう

4

1 に答える 1

2

int最初のクエリで匿名型を作成し、次に 2 番目のクエリで、基本的に匿名クラス型をやなどの基本型と比較しようとしていGuidます。

最初のクエリでは、より明示的になるようにしてください (正確な型にキャストすると仮定してintいますが、 a を使用している可能性がありますGuid):

select new  
{ 
    ID = (int)csd.C_S_ID 
};     

次に、2 番目のクエリで別の匿名型を作成します。これは、含まれるプロパティの型が明示されている最初の型と似ています。

&& !QcheckA.Contains(new { ID = (int)cd.C_S_ID} ) 
于 2012-06-18T23:09:18.867 に答える