2016-01-15 2 views
2

У меня есть 2 таблицы:Группа внешнего ключа и выберите (LINQ)

Table1: Id_tb1 (PK), title1.

Таблица 2: Id_tb2 (PK), Id_tb1 (FK), Title2.

Так простой запрос о table2 можно записать так:

from p in table2 select new { p.Id_tb2, Title1 = p.Table1.Title1 } 

Как я могу получить Title1 в моем Выберите, когда использование группы по колонке FK? что-то вроде этого:

from p in table2 group p by p.Id_tb1 into g select g.Table1.Title1 

ответ

1

Попробуйте это:

var result = 
    from p in table2 
    group p by p.Table1 into g 
    select g.Key.Title1; 

Это группы по Table1 сущности, а не только ид.

g.Key позволяет получить доступ к групповому ключу, который является объектом Table1 для каждой группы.

1

Вы можете попробовать это:

var result = from p in table2 group p.Table1.Title1 by p.Id_tb1 into g select g.ToList(); 

Этот запрос будет возвращать список из Title1 в каждой группе.

Если вам нужно выбрать более одного свойства, то сделать это:

var result = from p in table2 group p by p.Id_tb1 into g select g.Select(e=>new { e.Id_tb2, Title1 = e.Table1.Title1 });