Преобразование запроса SQL Server в лямбда-запрос LINQ для двух разных столбцов из двух разных таблиц, которые связаны между собой - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть две таблицы TABLE_A и TABLE_B, которые связаны между собой.

Мне нужно преобразовать этот запрос SQL Server в лямбда-запрос LINQ в C #:

SELECT a.COL1, a.COL2, b.COL2
FROM TABLE_A a, TABLE_B b
WHERE b.COL1 = A.COL3

На самом деле b.col1 это pk в table_b, а a.col3 это fk этого в table_a

Ответы [ 3 ]

0 голосов
/ 01 мая 2018

var q = (из a in table_A объединить b в table_B на b.col1 равно a.col3 выбрать новый {a.COL1, a.COL2, b.COL2}). ToList ();

0 голосов
/ 01 мая 2018
db.TABLE_A.Join(db.TABLE_B,
x=>x.Col3 //***from TABLE_A fk,
y=>y.Col1 //**from TABLE_B pk,
(x,y) => new {x.Col1,x.Col2,y.Col2} //y.Col2 is the name corresponding to fk
).ToList();

надеюсь сэкономить время для тех, кто запутался, как я .... я думаю, @grishma shah ответ может исправить в другой форме ... но я не пробовал, но кажется правильным, я думаю ... в любом случае приведенный выше список возврата linq возвращает анонимного типа a ', который делает кортеж, зависит от вашего выбора .... чтобы избежать того, что вы можете продолжить с .AsEnumerable().selec(y=> blah blah blah).ToList()

см .: Linq select Item, где он равен ID в другой таблице

0 голосов
/ 30 апреля 2018

Свойства навигации являются мощными:

table_a.Select( a=> new {a.COL1 , a.COL2 , a.b.COL2} )

Кроме того, вы можете узнать, как писать более качественные вопросы, по адресу " Как создать минимальный, полный и проверяемый пример " Я предлагаю вам внимательно прочитать сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...