2016-04-26 5 views
-3
These are my two tables. How can i make LINQ query between two tables : 

(1) Users : 
     Id , Name, Email 
(2) Articles : 
     Id,Title, Description ,UserId (Foreign key reference to User Table Id column) 

Questions : 

(1) How to select all records that are similar in both tables ? (Inner Join) 
(2) Left Join (Only record of left table) 
(3) Right Join (Only record of right table) 
(4) Full outer join (All records of both tables) 

Просьба предоставить мне помощь в создании запроса LINQ с объединениями, поскольку я являюсь новичком в LINQ to SQL.Комплекс запросов LINQ

+0

Downvoter предоставить мне причину – Dilip

+0

я упускаю что-то в объяснении ?? Дайте мне знать без downvoting .. – Dilip

+0

Почему никто голосует без всякой причины? Я все еще удивляюсь .. :( – Dilip

ответ

2

Ниже приведен псевдокод, и вам нужно будет адаптироваться к вашим именам таблиц и нуждам.

var question_one = (from u in Users 
         join a in Articles on u.Id equals a.UserId) 

var question_two = (from u in user 
        join a in Articles on u.Id equals a.UserId into leftJoin 
        from subUser in leftJoin.DefaultIfEmpty() 
        select subUser) 

var question_three = (from a in Articles 
        join u in user on a.UserId equals u.Id into leftJoin 
        from subUser in leftJoin.DefaultIfEmpty() 
        select subUser) 

Вопрос: Четыре не могут быть выполнены в обычном внешнем соединении, потому что таблица товаров действительно является дочерней таблицей пользователей. Поэтому у любой статьи всегда есть пользователь. Что вы можете сделать, это просто materilize таблицы пользователей и включают в себя любые статьи, как так

ВНИМАНИЕ псевдокод КАК НЕ ЗНАЕМ ВАШЕЙ НАВИГАЦИЮ СВОЙСТВА

Users.include(x => x.Articles).ToList(); 

msdn for linq joining

+0

Ты замечательный. Спасибо за вашу помощь :) – Dilip