Linq to SQL Concat/Unionがカスタムクラスで動作しません。Linq to SQL Concat/Unionがカスタムクラスで機能しない
カスタムクラス
public class CustomClass
{
public string FirstName { get; set; }
public string LastName { get; set; }
public List<Accesses> Accesses { get; set; }
}
連合:
The 'Distinct' operation cannot be applied to the collection ResultType of the specified argument.\r\nParameter name: argument
:
IQueryable<CustomClass> objQuery = context.Users
.Where(W => W.Auth == true)
.Select(S => new CustomClass()
{
FirstName = S.FirstName,
LastName = S.LastName,
Accesses = context.AuthFalse
.Where(W => W.UID = S.ID)
.Select(S1 => new Accesses()
{
AccessesID = S1.AccessesID,
})
.ToList(),
})
.Union(context.Users
.Where(W => W.Auth == true)
.Select(S => new CustomClass()
{
FirstName = S.FirstName,
LastName = S.LastName,
Accesses = context.AuthTrue
.Where(W => W.UID = S.ID)
.Select(S1 => new Accesses()
{
AccessesID = S1.AccessesID,
})
.ToList(),
})
);
私は次のエラーを得たとき、私は上記のクエリを実行しますCONCAT
IQueryable<CustomClass> objQuery = context.Users
.Where(W => W.Auth == true)
.Select(S => new CustomClass()
{
FirstName = S.FirstName,
LastName = S.LastName,
Accesses = context.AuthFalse
.Where(W => W.UID = S.ID)
.Select(S1 => new Accesses()
{
AccessesID = S1.AccessesID,
})
.ToList(),
})
.Concat(context.Users
.Where(W => W.Auth == true)
.Select(S => new CustomClass()
{
FirstName = S.FirstName,
LastName = S.LastName,
Accesses = context.AuthTrue
.Where(W => W.UID = S.ID)
.Select(S1 => new Accesses()
{
AccessesID = S1.AccessesID,
})
.ToList(),
})
);
私は、次のエラーを得た上でクエリを実行:
{"The nested query is not supported. Operation1='UnionAll' Operation2='MultiStreamNest'"}
最後に、私は何をしたいユーザーテーブルの認証フィールドが真である場合ということですよりAuthTrueテーブルからデータを取得したい場合は、のリストフィールドに保存したい場合はAuthフィールドは、偽よりです。私はAuthFalseテーブルからのデータを得たいとリストフィールドに保存したいと思います。
これは、すべて単一クエリまたは最大2〜3クエリで実行します。
ありがとうございました。
おそらくあなたは、このような連結方式の試行あなたを書き換える必要があります。ユーザーで始まるが、その後2左はuser.Authフィールドと適切な右のマッチによるフィルタリングを追加AuthFalseとAuthTrueに参加しない、匿名を選択しますuser.Id、user.LastName、user.FirstName + AuthFalse一致またはAuthTrue一致のいずれかのクラス。この段階では、キャストされたToEnumerableによってクエリ可能でなければならず、すべてが適切なグループ化+選択です。 –
@VitaliyKalinin、ありがとう、あなたはいくつかのコードスニペットを提供していただけますか?なぜなら、あなたが実装するために言っていることを理解していないからです。 –