Search code examples
c#sql-serverlinqentity-frameworklinq-to-entities

Get All Except from SQL database using Entity Framework


I have a list of Products like this

var r = db.Products.Where(x => x.Sites
                                .Where(z => z.Key == associatedProducts.Key)
                                .Any()
                  ).ToList()

There is an entity called Products, I want to get all elements from products except those exist in associatedProducts.Products

How can i do that ?


Solution

  • The following query works if associatedProducts list is fetched using EF in a previos query.

    var temp = db.Products.ToList().Except(associatedProducts).ToList();
    

    otherwise, if associatedProducts is a list which has not been fetched using EF (assuming Key is an integer);

    List<int> tempIdList = associatedProducts.Select(q => q.Key ).ToList();
    var temp = db.Products.Where(q => !tempIdList.Contains(q.Key));