C# .Net Web アプリがあり、次の LINQ クエリを使用して、ユーザーが作成したか、さまざまなユーザー ロールを持つ提案の個別のリストを取得しています。返されるリストには、Union と Distinct の後でも同じ提案の重複が含まれています。私は何を間違っていますか?
var thereturn = FindAll(DetachedCriteria.For<Proposal>(),
new Order("CreateDate", false));
//get the proposals that aUser created
IList<Proposal> it =
thereturn.Where(proposal => proposal.CreatedBy.Equals(aUser)).ToList();
//get the proposals that aUser is a BOE Author
IList<Proposal> it2 =
thereturn.Where(proposal =>
proposal.BOEs.Any(boe =>
boe.Users.Where(a => a.Name == aUser).Any())).ToList();
//get all other proposals that aUser is on
IList<Proposal> it3 =
thereturn.Where(proposal =>
proposal.Users.Where(o => o.Name == aUser).Any()).ToList();
//now union with all other proposals that aUser is on
return it3.Union(it).Union(it2).
OrderByDescending(o=>o.CreateDate).Distinct().ToList();