Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Join трех таблиц / 3 сообщений из 3, страница 1 из 1
08.10.2012, 21:05
    #37989069
Varcom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Join трех таблиц
Есть три таблицы со связями FieldList(1)-(*)FieldValues(*)-(1)Messages
FieldList(Id, Name) - фиксированный список полей
Messages(Id, Name) - список сообщений
FieldValues(MessageId, FieldId, Value) - значения полей для каждого сообщения. Если какое-то поле сообщения не заполнено, то запись в этой таблице отсутствует.
Нужно построить Linq-запрос, который выбирал бы все записи из таблицы FieldList, и делал Left Join к ним записей из таблицы FieldValues для какого-то конкретного сообщения. Как написать запрос?
...
Рейтинг: 0 / 0
09.10.2012, 09:53
    #37989453
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Join трех таблиц
VarcomЕсть три таблицы со связями FieldList(1)-(*)FieldValues(*)-(1)Messages
FieldList(Id, Name) - фиксированный список полей
Messages(Id, Name) - список сообщений
FieldValues(MessageId, FieldId, Value) - значения полей для каждого сообщения. Если какое-то поле сообщения не заполнено, то запись в этой таблице отсутствует.
Нужно построить Linq-запрос, который выбирал бы все записи из таблицы FieldList, и делал Left Join к ним записей из таблицы FieldValues для какого-то конкретного сообщения. Как написать запрос?

хорошим тоном было бы предоставить скрипт создани бд с таблицами и тестовыми данными в них
...
Рейтинг: 0 / 0
11.10.2012, 09:17
    #37993005
Gul-79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Join трех таблиц
Как то так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public IQueryable GetAllPeople(string flag)
        {
            PeoplelEntities db = new PeopleEntities();

            var peopleAll = (from p in db.People

                             join t1 in db.Tabl1 on p.ID equals t1.ID

                             join t2 in db.Tabl2 on p.ID equals t2.ID into Temp2
                             from temp2 in Temp2.DefaultIfEmpty()

                             join t3 in db.Tabl3 on db.ID equals t3.ID into Temp3
                             from temp3 in Temp3.DefaultIfEmpty()
					
		  	и так далее ...................

                             where t1.Name == flag
                             orderby p.Name

                             select new { People = p.Name,Tabl2 = temp2.Name,Tabl3 = temp3.Name });        
            return peopleAll;    
        }
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Join трех таблиц / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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