Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
Мне необходимо выбрать след. инфу:

from Train: TrainID ;
from SheduleDetails: TimeArrive and TimeDeparture;
where StationName (from RouteDetails) = A1 and StationName = A2 - это для того чтобы указать две станции - начальную и конечную.

Помогите пжалуйста, ибо я и в чистом sql не особо вник во вложенные подзапросы, а на linq так вообще лес дремучий.
Выборка будет иметь: TrainId | TimeArrive | TimeDeparture <= здесь две станции должны участвовать в условии

вот тут диаграмма таблиц:
http://i065.radikal.ru/1111/35/8f2cace6fa52.jpg
28 ноя 11, 00:39    [11668404]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
(from ttt in db.SheduleDetails
where (from x in db.SheduleDetails where x.StationId == 1 select x.StationId) ==
(from c in db.SheduleDetails where c.StationId == 6 select c.StationId)
select ttt).ToList();
что то типо того я начал строить, но оно не работает, + join нужны ещё а как их сюда запихнуть хз
28 ноя 11, 00:56    [11668434]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Для начала осильте подстветку синтаксиса.
28 ноя 11, 11:11    [11669266]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
(from ttt in db.SheduleDetails
 where (from x in db.SheduleDetails where x.StationId == 1 select x.StationId) ==
 (from c in db.SheduleDetails where c.StationId == 6 select c.StationId)
 select ttt).ToList();
linq синтаксис форум не берёт
28 ноя 11, 14:27    [11671093]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
Что никто не поможет? (
30 ноя 11, 22:10    [11686446]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Напишите обычный SQL запрос. А потом переведем на линк.
1 дек 11, 11:55    [11688303]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
понимаете, в том то и загвоздка, что есть пробелемы с обычным sql запросом, ибо как выбрать маршрут где станции встречаются в нужном порядке, т.е. для поиска Москва-Минск выбрать те паровозы, которые там идут, а у меня выбирает так же те Минск-Москва, так не пойдёт ну и так много ещё чего
вот здесь и схема ещё:
Картинка с другого сайта.
и мои новые попытки, здесь особо не разницы sql или linq to sql, я не особо саму логику запроса могу составить
1 дек 11, 19:36    [11692190]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
var res = (from d in db.RouteDetail
                       from m in db.RouteDetail

                       join o in db.SheduleDetails
                       on d.StationId equals o.StationId

                       join z in db.SheduleDetails
                       on m.StationId equals z.StationId

                       where (d.Station == "Гродно" 
                       &&
                       m.Station == "Лида")
                       && d.Route.RouteId == m.Route.RouteId
                      
                       select new SheduleSearchResult()
                       {
                           StationId = d.StationId,
                           StationName = d.Station,
                           RouteId = d.Route.RouteId,
                           TimeArrival = o.TimeArrive,
                           TimeDeparture = z.TimeDeparture,
                       }).ToList();
1 дек 11, 19:38    [11692197]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
pavel1992007
понимаете, в том то и загвоздка, что есть пробелемы с обычным sql запросом

Если есть проблемы с обычным sql запросом, лучше за LINQ to SQL не браться.
1 дек 11, 21:21    [11692604]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные при помощи вложенного подзапроса с помощью linq to sql?  [new]
pavel1992007
Member

Откуда:
Сообщений: 35
вроде разобрался
1 дек 11, 23:29    [11693017]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить