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