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

хорошим тоном было бы предоставить скрипт создани бд с таблицами и тестовыми данными в них
...
Рейтинг: 0 / 0
Join трех таблиц
    #37993005
Gul-79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как то так
Код: 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
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Join трех таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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