Если у вас есть дубликаты в QProductAllInfo, замена кода на это должна решить вашу проблему.
var QP = from a in QProductAllInfo.Distinct()
select new { a.Id, a.Title, a.FullTitle };
, если это не работает, вы можете использовать кортежи вместо анонимных типов, таких как:
var QP = from a in QProductAllInfo
select Tuple.Create(a.Id, a.Title, a.FullTitle);
Применение оператора Distinct к анонимным типам бесполезно, поскольку анонимные типы всегда являются ссылочными типами, которые не реализуют интерфейс IEquatable.