C# Linq查询以查找所有孤立产品

C# Linq查询以查找所有孤立产品,c#,linq,C#,Linq,我有三种产品和产品类别系统模型: [Products] Id Title Info Price [ProductCategories] Id ParentId SortOrder Title [ProductsInCategories] Id ProductId ProductCategoryId SortOrder 现在,我想列出ProductsInCategories表中没有条目的所有产品。即,所有孤儿产品。我如何在linq中做到这一点?您可以使用!Any仅获取那些在ProductsI

我有三种产品和产品类别系统模型:

[Products]
Id
Title
Info
Price

[ProductCategories]
Id
ParentId
SortOrder
Title

[ProductsInCategories]
Id
ProductId
ProductCategoryId
SortOrder

现在,我想列出ProductsInCategories表中没有条目的所有产品。即,所有孤儿产品。我如何在linq中做到这一点?

您可以使用
!Any
仅获取那些在
ProductsInCategories
中没有条目的产品:

List<Product> productList = db.Products
    .Where(p => !db.ProductsInCategories.Any(pc => p.Id == pc.ProductId))
    .ToList();
List productList=db.Products
.Where(p=>!db.ProductsInCategories.Any(pc=>p.Id==pc.ProductId))
.ToList();

您可以先尝试一些东西,然后向我们展示这些代码?@Stian-如果Tim解决方案解决了您的问题,请回复?当你问一个问题时,如果它解决了你的问题,你应该接受答案:)仅仅知道表格是不够的。这就是为什么展示你自己的努力,无论多么尝试,总是有用的。他们经常澄清一些你没有意识到的事情。比如:你用的是哪种ORM?LINQ类是什么样子的?有ToList()可能吗?)我的反对票:如果不知道OP的ORM和类模型,就无法回答这个问题。谁说
ProductsInCategories
甚至作为类出现?另外,应该提倡使用导航属性。我的投票:因为根据问题,这个解决方案是完美的。。。基于ORM模型。有多个答案,但这是其中一个。@GertArnold:1)你对提供者做了一个假设,你怎么知道有导航属性?2) 即使具有导航属性。此表是一个n-m关系。所以没有导航property@GertArnold:你抱怨我是因为我对模型(OP已经展示)和ORM(我的方法适用于任何人)做出了假设。现在您提供了一种只在少数ORM和LINQ提供程序中工作的方法,这更好吗?我不认为我的查询太复杂,它仍然非常可读。