我有这些表
CREATE TABLE parent
(
id NUMBER(10, 0) NOT NULL,
name VARCHAR2(100 CHAR) NOT NULL,
primary key (id),
)
CREATE TABLE child
(
id NUMBER(10, 0) NOT NULL,
name VARCHAR2(100 CHAR) NOT NULL,
conclusion DATE,
parent_id NUMBER(10, 0) NOT NULL,
)
ALTER TABLE child ADD constraint foreign key (parent_id) references parent;
我希望获得List<Parent>
,其中每个Parent.Child
只包含!CONCLUSION.HasValue()
答案 0 :(得分:1)
var result = (from p in Parent
select new Parent()
{
id = p.id,
child = (from c in Child
where c.parent_id = p.id &&
!c.conclusion.HasValue()
select c).ToList()
}).ToList();
这未经过测试,但它应该完成这项工作
答案 1 :(得分:0)
第二个选择是
var parents = context.Parents.ToList();
foreach(var parent in parents)
{
var invalidChildren = parent.CHILD
.Where(child => child.CONCLUSION.HasValue())
.ToArray();
foreach(var invalid in invalidChildren)
{
parent.CHILD.Remove(invalid);
}
}