使用Entity Framework从SQL数据库中获取所有内容

Moh*_*uib 8 c# linq sql-server linq-to-entities entity-framework

我有这样的产品清单

var r = db.Products.Where(x => x.Sites
                                .Where(z => z.Key == associatedProducts.Key)
                                .Any()
                  ).ToList()
Run Code Online (Sandbox Code Playgroud)

有一个名为Products的实体,我想从产品中获取所有元素,但那些存在于associatedProducts.Products中

我怎样才能做到这一点 ?

dar*_*yal 17

如果在previos查询中使用EF获取associatedProducts列表,则以下查询有效.

var temp = db.Products.ToList().Except(associatedProducts).ToList();
Run Code Online (Sandbox Code Playgroud)

否则,if associatedProducts是一个未使用EF获取的列表(假设Key是一个整数);

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