Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Linq запрос + left / 6 сообщений из 6, страница 1 из 1
10.03.2014, 20:35
    #38582530
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq запрос + left
Всем привет! Ребят есть табличка записей, вот такой линк запрос, стала задача добавить табличку SEO, обе таблички соединяются по айдишникам (Record.id = SEO.record_id). Все бы хорошо, но не на каждую запись в табличке SEO есть строка (не все записи SEO оптимизированы), поэтому данный запрос выдает только те записи, айдишки которых есть в табл SEO. В простом SQL решается left... а как в линке? Гуглил, но синтаксис непонятный, тем более с моим вариантом. Подскажите пж как тут выкрутиться

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var list = (from rec in db.Records
            join usr in db.UserProfiles on rec.User_id equals usr.id
            join cat in db.CategoriesRecord on rec.Category equals cat.id
            join seo in db.SEOs on rec.id equals seo.id_record

            where rec.Type == 3 && rec.is_publish == true && rec.DateTimePublish < DateTime.Now && rec.Deleted == false
            orderby rec.DateTimePublish descending

            select new { record = rec, user = usr, pathToCat = cat.PathToImg, seo = seo }).Take(NumberRecords).AsEnumerable();
...
Рейтинг: 0 / 0
10.03.2014, 23:43
    #38582591
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq запрос + left
Sputnick, как то так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var list = (from rec in db.Records
            join usr in db.UserProfiles on rec.User_id equals usr.id
            join cat in db.CategoriesRecord on rec.Category equals cat.id
            join seo_source in db.SEOs on rec.id equals seo_source.id_record 

            into t1
            join seo in t1.DefaultIfEmpty()

            where rec.Type == 3 && rec.is_publish == true && rec.DateTimePublish < DateTime.Now && rec.Deleted == false
            orderby rec.DateTimePublish descending

            select new { record = rec, user = usr, pathToCat = cat.PathToImg, seo = seo }).Take(NumberRecords).AsEnumerable();
...
Рейтинг: 0 / 0
11.03.2014, 09:01
    #38582684
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq запрос + left
handmadeFromRuSputnick, как то так


[/src]

спасибо

на временную таблицу пишет имя т1 не существует http://joxi.ru/dpgeUxjKTJCtKBseL3g и в скрине еще одна ошибка
...
Рейтинг: 0 / 0
11.03.2014, 09:15
    #38582693
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq запрос + left
Sputnick, я опечатался в 1 месте

into t1
from seo in t1.DefaultIfEmpty()
...
Рейтинг: 0 / 0
11.03.2014, 13:33
    #38582923
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq запрос + left
handmadeFromRuSputnick, я опечатался в 1 месте

into t1
from seo in t1.DefaultIfEmpty()

спасибо большое, работает...

скажи а на будущее наверно лучше все запросы в хранимых процедурах держать... их и дергать? Не знаю как в плане производительности.... но изменение проще - процедуру подправил и готово.... в случае же сайта нужно компилить заново и заливать на хост....
...
Рейтинг: 0 / 0
11.03.2014, 14:50
    #38582988
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq запрос + left
Sputnick,

как вам нравится так и делайте, если я начну говорить что не надо, то найдется кто то что скажет что на sql. это холиварный вопрос. я к примеру если использую орм, то хранимки использую для сложных и не тривиальных запросов, которые средствами орм затруднительно реализовать. У вас выбора простая и я не вижу смысла это заменять на хранимку. Но есть сторонники всей логики на стороне sql. Есть плюсы и минусы свои.

п.с. операции обновления не столь частые, можно настроить деплой если хочется автоматически.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Linq запрос + left / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]