Перевести SQL-запрос в LINQ

94
24 февраля 2021, 10:10

Есть два DataGridView. В одном главные записи, во втором детали по нему.

Делаю так

list = model.Contracts
    .Include(c => c.ListSubjects)
    .ToList();
dataGridView1.DataSource = list;

Contracts item = list
    .Find(c => c.Id == Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value));
dataGridView2.DataSource = item.ListSubjects
    .ToList();

Тогда во втором DataGridView вижу только записи для нужного Contracts. Но там только числа. Как мне подтянуть Title от Subjects и показывать во втором DataGridView только его.

Другими словами, выполнять запрос:

SELECT s.Title 
FROM Contracts c, ListSubjects ls, Subjects s
WHERE c.ID = ls.ID_Contract AND s.ID = ls.ID_Subject
Answer 1
var  title = (from cont in model.Contracts
             join lsSub in model.ListSubjects  on lsSub.Id_Contract equals cont.Id 
             join subj in model.Subjects on  subj.ID  equals lsSub.ID_Subject
             where cont.ID == Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value))
             select subj.Title
             );

Как-то так. Если что-то не так - просьба сильно не пинать так, как написано было на коленке.

READ ALSO
Потокобезопасный перебор коллекции

Потокобезопасный перебор коллекции

Подскажите, как можно реализовать коллекцию, реализующую INotifyCollectionChanged, и которую можно было бы потокобезопасно перебирать? Наследоваться...

93
C# атрибут XML повторяющий

C# атрибут XML повторяющий

прошу Вас помогите 3 дня уже почти сижу не могу понять как сделатьЕсть ХМЛ документ вот пример: Как видите, тут два атрибута <"ValType Type="> повторяются,...

104
C# WebSocket, перехват события (DonationAlerts)

C# WebSocket, перехват события (DonationAlerts)

Моя цель - получить событие "донат" от стороннего ресурса (DonationAlerts) для дальнейшей обработки сообщенияСвязывался с поддержкой по этому поводу,...

79