У меня есть класс Контакт:
public class Contact
{
public string Function { get; set; };
public string Civility { get; set; }
public string FirstName { get; set; }
public List<Certification> Certifications { get; set; } = new List<Certification>();
}
Моя логика запроса следующая:
List<Contact> contacts
= await Context.Database
.SqlQuery<Contact>("[dbo].[Contact] @codes,@Sprache",
parameters).ToListAsync();
Как использовать .selectMany, чтобы у функций этого класса были только имена?
У меня 15, но есть дубликаты (Sylvain x2, Clémence x3) ...
Это потому, что один - Certification Officer, а другой - Sales Officer. Это совершенно разные записи с разными идентификаторами. Если вам нужны только их имена, измените свой запрос и получите только фамилию distinct.
нет Мне нужен 1 список FunctionsOOP и 1 список pk_PrestaOOP. Например: для Стефани мне нужно 1 lastName, 1 firstNam, 1 список Function = {"Certification Officer", "Sales Officer") и 1 список pk_PrestaOOP = {"6DD ....", "F6C ..." , "EB6 ..."}, 1 электронное письмо и 1 тел.
Ваша модель данных должна быть нормализована. Один контакт должен быть связан с несколькими записями функций. Пока вы этого не сделаете, вы никогда не сможете легко получить список отдельных контактов. Будет даже сложнее получить данные, относящиеся к одному контакту, например, ко всем Certifications, имеющимся у одного контакта.
Вы можете использовать GroupBy для объединения повторяющихся записей, но создавать новый Contact, который не соответствует записи в базе данных, - плохая идея, поэтому вам придется возвращать новый класс или анонимный объект.





Если вам нужны отдельные объекты, почему бы не использовать Отчетливый(). Насколько я понимаю, Select Many сгладит (то есть уменьшит вложенные коллекции) коллекцию. Проверьте этот вопрос
и каков результат "сгладить эту коллекцию"? (Я пытаюсь понять Selectmany)
@ElzbietaIgual См. Пример, указанный в моем ответе. Вы заметите, что IEnumerable <IEnumerable <PhoneNumber>> преобразуется только в IEnumerable <PhoneNumber>
Сколько записей в вашей БД? Если их 15, зачем вам 9?