Create UNION Query With Entity Framework

9/9/2015 3:13:23 AM

The Entity Framework makes it incredibly easy to make a UNION query. Below, we are pulling data from the Contents table that is part of my DbContext. I first pull data based on a UserId and then based on a GroupId/ParentId. I call the UNION statement from the first query and then finally call the distinct method to ensure distinct rows are returned.

//user create posts
var queryUserPosts = from contents in this._dbContext.Contents

					 where contents.UserId == userId					 

					 select contents;


//group posts that user is a part of
var queryGroupPosts = from contents in this._dbContext.Contents
					  
					  where contents.ParentId == parentId

					  select contents;


//create union
var query = queryUserPosts.Union(queryGroupPosts).Distinct().OrderByDescending(x => x.Id);

query.ToList();