2011-12-15 2 views
0

У меня есть 2 стола.Как присоединиться к двум таблицам в LINQ to Entity?

TableA :- ID, Name, Type 
TableB :- ID, Name, TableAID 

Я хочу получить список результатов с столбцами, которые включают TableA.Name, TableB.Name. Я использую Entity Framework. В настоящее время я получаю данные из Table1A.

IEnumerable<TableAModel> tableAData = DatabaseContext.FromContext().DatabaseName.TableA.AsEnumerable().Select(tableAData => tableAData.ToModel()); 

Я хочу, чтобы создать тот же самый список, который также включает в себя TableB.Name так что я могу иметь, что дисплей в моей сетке? Является ли это возможным?

Пожалуйста, дайте мне знать, как это сделать?

ответ

3

Что-то вроде этого:

var db = DatabaseContext.FromContext(); 
var result = (from a in db.TableA 
       join b in db.TableB on a.ID equals b.TableAID 
       select new { 
        AID = a.ID, 
        AName = a.Name, 
        AType = a.Type, 
        BName = b.Name}).ToList(); 

Ref: join clause (C# Reference)

1

Простого поиска в гугле есть многочисленные примеры. Здесь была одна с первой страницы. Link

0

Вы хотите что-то подобное, но я не знаю точного результата, которого вы хотите достичь, поэтому трудно сказать точно.

var db = DatabaseContext.FromContext().DatabaseName; 
var AllData = from A in db.TableA 
       from B in db.TableB 
       where A.ID == B.TableAID 
       select new {A,B}; 
var Result = AllData.AsEnumerable().Select(dat=>new{A=dat.A.ToModel(),B=dat.B.ToModel()}); 
Смежные вопросы