Как использовать запрос Linq To Sql для отображения данных в моем случае? - PullRequest
1 голос
/ 08 июня 2011

У меня проблемы с написанием запроса с Linq, я лучше объясню свой случай, у меня есть база данных с 2 таблицами, как показано ниже:

это первая таблица;

  • Отель

  • HotelID (Нварчар (10) - PK)

  • HotelName (Nvarchar (200))

а это вторая таблица;

  • Период

  • PeriodID (Int (inc) - PK)

  • _From (Datetime)
  • _To (Datetime)
  • HotelID (Нварчар (10) - ФК)

затем во второй Таблице (Период) есть FK (HotelID) для соединения двух таблиц; Случилось так, что у меня есть HotelName, который получает больше периодов (PeriodID), поэтому моя цель - показать данные только в одной строке в DataGrid, я покажу вам пример того, как я хочу показать данные в моей DataGrid, если есть больше периодов в тот же HotelName:

| HotelName | От | К | Из (2) | К (2) | Из (3) | К (3) | Из (4) | К (4) |


| Эксельсиор | 05.12.10 | 3/6/10 | 2/8/10 | 9/9/10 | 23/9/10 | 1/10/10 | 2/11/11 | 1/12/10 |

поэтому я спрашиваю, есть ли у вас какие-либо идеи / предложения о том, как показать данные в DataGrid в одной строке, используя Linq To Sql?

Большое спасибо за ваше внимание.

Хорошо провести время.

Приветствия

1 Ответ

2 голосов
/ 08 июня 2011

В этой статье описывается работа с иерархической привязкой данных: http://msdn.microsoft.com/en-us/library/aa478959.aspx

Затем создайте объектную модель, которая приблизительно соответствует вашим таблицам базы данных:

Hotel
 - ID
 - Name
 - Bookings
  - Booking 1 { From, To }
  - Booking 2 { From, To }
  - Booking n { From, To }

Ваш Linq должен выглядеть примерно так:

var hotels = _db.Hotel.Select();

foreach(var hotel in hotels)
    hotel.Bookings = _db.Period.Where(x => x.HotelId == hotel.HotelId).Select();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...