Форум программистов, компьютерный форум, киберфорум
Наши страницы
LINQ
Войти
Регистрация
Восстановить пароль
 
JayKey
1 / 1 / 1
Регистрация: 17.07.2014
Сообщений: 50
#1

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

25.05.2018, 13:29. Просмотров 107. Ответов 3
Метки нет (Все метки)

Доброго времени суток, требуется помощь в переводе запроса с SQL в LINQ, кто сможет помогите, буду Весьма благодарен.
Запрос:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT DISTINCT ssm.k_spec,ss.name,ss.name_s,ssm.id
        FROM dbo.sp_spec_mest ssm
        JOIN dbo.SP_SPEC_PK ss ON ssm.k_spec = ss.k_spec
        JOIN dbo.sp_sertif_to_spec ssts ON ss.shifr=ssts.kod
        JOIN dbo.ank_sertif srtf ON (ssts.rus_lang=1 AND srtf.ball_lang>60)AND
                                    ((ssts.math=1 AND srtf.ball_math>60)OR ssts.math=0)AND
                                    ((ssts.physics=1 AND srtf.ball_phys>60)OR ssts.physics=0)AND
                                    ((ssts.chemistry=1 AND srtf.ball_him>60)OR ssts.chemistry=0)AND
                                    ((ssts.inyaz=1 AND srtf.ball_inyaz>60)OR ssts.inyaz=0)AND
                                    ((ssts.history=1 AND srtf.ball_history>60)OR ssts.history=0)AND
                                    ((ssts.geog=1 AND srtf.ball_geo>60)OR ssts.geog=0)
        WHERE ssm.id_baz_podgot = 1
        AND ssm.id_form_dec = 1 AND ssm.kurs = 1
        AND ssm.id_vid_podgot = 236
        
        AND ss.actual = 1 AND ssm.actual = 1
        AND srtf.id_foto=4599
        AND ssm.id_priem = 6
        ORDER BY ssm.id
Вот так построил в linq этот запрос:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
l = (from ssm in db.sp_spec_mest
                         join ss in db.SP_SPEC_PK on ssm.k_spec equals ss.k_spec
                         join ssts in db.sp_sertif_to_spec on ss.shifr equals ssts.kod
                         join srtf in db.ank_sertif on (((ssts.rus_lang equals 1) && (srtf.ball_lang > 60)) &&
                                                        ((ssts.math equals 1 && srtf.ball_math > 60)|| ssts.math = 0)&&
                                                        ((ssts.physics = 1 && srtf.ball_phys > 60) || ssts.physics = 0)&&
                                                        ((ssts.chemistry = 1 && srtf.ball_him > 60) || ssts.chemistry = 0)&&
                                                        ((ssts.inyaz = 1 && srtf.ball_inyaz > 60) || ssts.inyaz = 0)&&
                                                        ((ssts.history = 1 && srtf.ball_history > 60) || ssts.history = 0)&&
                                                        ((ssts.geog = 1 && srtf.ball_geo > 60) || ssts.geog = 0)
                         orderby ssm.id
                         where ssm.id_baz_podgot == 1
                         && ssm.id_form_dec == 1 && ssm.kurs == 1
                         && ssm.id_vid_podgot == 236
                         && ss.actual == 1 && ssm.actual == 1
                         && ssm.id_priem ==6
                         select new ComboBoxList
                         {
                             ID = ssm.k_spec.Value,
                             Name = ss.name,
                             S_name = ss.name_s,
                             ID_dop = ssm.id
                         }).Distinct().ToList();
                }
Ругается именно на эту часть в linq
C#
1
2
3
4
5
6
7
join srtf in db.ank_sertif on (((ssts.rus_lang equals 1) && (srtf.ball_lang > 60)) &&
                                                        ((ssts.math equals 1 && srtf.ball_math > 60)|| ssts.math = 0)&&
                                                        ((ssts.physics = 1 && srtf.ball_phys > 60) || ssts.physics = 0)&&
                                                        ((ssts.chemistry = 1 && srtf.ball_him > 60) || ssts.chemistry = 0)&&
                                                        ((ssts.inyaz = 1 && srtf.ball_inyaz > 60) || ssts.inyaz = 0)&&
                                                        ((ssts.history = 1 && srtf.ball_history > 60) || ssts.history = 0)&&
                                                        ((ssts.geog = 1 && srtf.ball_geo > 60) || ssts.geog = 0)

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2018, 13:29
Ответы с готовыми решениями:

Перевести SQL запрос в LINQ
Доброе время суток! Вот до этого времени не сталкивался с Join в LINQ....

Перевести SQL-запрос в LINQ
Ребят помогите понять как будет такой запрос выглядить на linq: SELECT...

Перевести SQL в LINQ
Уважаемые, как перевести сие выражение: SELECT ShippingAddressID, Address...

Перевести SQL в LINQ
Необходимо перевести это выражение: SELECT...

Переписать SQL запрос в LINQ запрос
День добрый всем. Подскажите, пожалуйста, как можно преобразовать запрос: ...

3
kingzfate
Unnamed
140 / 143 / 75
Регистрация: 09.06.2011
Сообщений: 702
Завершенные тесты: 1
25.05.2018, 13:35 #2
JayKey, разбейте по частям и найдите ошибку. И желательно не использовать такое количество Join и уже использовать нормальный Linq
0
Aferuga
318 / 321 / 220
Регистрация: 20.05.2015
Сообщений: 949
Завершенные тесты: 1
28.05.2018, 07:07 #3
Мне кажется или в 10ой строке последней закрывающей скобки не хватает.
0
kolorotur
Эксперт .NET
10007 / 8405 / 2063
Регистрация: 17.09.2011
Сообщений: 14,470
28.05.2018, 14:34 #4
Можно, конечно, написать монструозный запрос, но не проще было бы создать в базе представление по указанному запросу, а в коде уже генерировать сущности на основе этого представления?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2018, 14:34

SQL запрос в LINQ
Я не понимаю как перобразовать такой SQL-запрос для MS SQL SELECT * FROM...

Переписать запрос SQL на LINQ
всем доброго времени суток! помогите написать запрос на LINQ вот он на MS...

Как будет выглядеть SQL запрос в LINQ?
SELECT .OrdCount, .OrdInDate, Zak.ZakName FROM Zak INNER JOIN ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru