2010-11-19 3 views
1

次の構文が間違っているかどうかはわかりません。私は、次のデータのために自分のDataContextを照会したいと思います。DataContextをネストしたANDおよびOR

FileAccessで何も持たず、FileAccessGroupsには何も表示しません。 FilesAccessに自分のユーザーIDを持つものもすべて表示してください。

ここでは、使用しようとしている構文を示します。それは失敗する|| 3行目の終わりに言った: "演算子 '||' 'ラムダ式'と 'ラムダ式'のオペランドには適用できません "

構文が間違っていますか?これらのタイプのクエリは可能でなければなりませんか?

return db.Files 
    .Where(
    (f => !f.FilesAccesses.Any() && !f.FilesAccessGroups.Any()) || 
    (f => f.FilesAccesses.Any(a => a.UserId == user))) 
    .OrderBy(f => f.ObjectType) 
    .ThenBy(f => f.Name); 

答えて

3

これを試してください。実際の構文は間違っています。

return db.Files 
    .Where(f => 
    (!f.FilesAccesses.Any() && !f.FilesAccessGroups.Any()) || 
    (f.FilesAccesses.Any(a => a.UserId == user))) 
    .OrderBy(f => f.ObjectType) 
    .ThenBy(f => f.Name); 
関連する問題