2015-12-22 4 views
0

В последнее время я работаю над проектом C#, и я пытаюсь выполнить сложный SQL-запрос в LINQ C#. Но я не знаю, как это сделать.Заявление SQL в оператор LinQ

Вот заявление:

SELECT * 
FROM members 
INNER JOIN group_has_members ON members.ID = group_has_members.members_ID 
WHERE group_has_members.group_ID != 1 
AND group_has_members.members_ID NOT IN(SELECT group_has_members.members_ID 
FROM group_has_members 
WHERE group_has_members.group_ID = 1) 

Было бы хорошо, если бы вы мне помочь: D Ваш Флориан

+0

Как делать? Содержит ли этот код? Выбросить исключение во время выполнения? Вернуть неправильные результаты? –

+0

нет, я просто это заявление в linq. и я понятия не имею, как это сделать: D –

+0

вы используете структуру сущностей? Если это так, я бы сначала взял базу данных? – Borophyll

ответ

0

Если у Вас есть запрос, и вы бы использовать его в проекте на основе Linq To SQL, вам не нужно снова работать в одном запросе, чтобы получить его в семантике linq. Вы можете использовать команду Execute для непосредственного использования вашего запроса.

https://msdn.microsoft.com/it-it/library/system.data.linq.datacontext.executecommand(v=vs.110).aspx

1

Я думаю, что нужно что-то вроде этого, я не проверял этот запрос, но это будет что-то вдоль этих линий. См. How would you do a "not in" query with LINQ? для некоторых идей.

var mem = from m in members 
      join gm in group_has_members on m.ID equals gm.members_ID 
      where gm.members_ID != 1 && 
       !(from ghm in group_has_members 
       where ghm.group_ID = 1 
       select ghm.members_ID).Contains(gm.members_ID) 
      select m; 

Также отличный инструмент для этого - LinqPad, если вы только начинаете. Вы можете вставить SQL в окно и просмотреть эквивалент linq.

Смежные вопросы