如果我有这样的数据库结构
class Parent { int ID { get; set; } string Name { get; set; } ListChildren { get; set; } } class Child { int ID { get; set; } string Name { get; set; } List Parents { get; set; } }
我想得到所有有孩子的父母的名单,名字不是"Dave"
因此,如果父母一个有两个孩子叫Jack和Jill,我想要他们
如果父母二有两个孩子叫萨姆和戴夫我不想要他们
如果父母三没有孩子我想要他们
如果父母四有一个名叫史蒂夫的孩子我想要他们
如果父母五有一个孩子叫戴夫,我不想要他们
我想得到所有有孩子的父母的名单,名字不是"Dave"
与规则#3冲突:如果父3没有孩子,我想要他们.
符合所有规则的要求可描述为:
获取所有没有孩子姓名"Dave"的父母的名单
在LINQ中翻译为:
var query = db.Parent.Where(p => !p.Children.Any(c => c.Name == "Dave"));