Linq to sql 易读父-子
我需要将:IQueryable转换为IQueryable 这不起作用,无法将EntitySet转换为IQueryable。谢谢使用:Linq to sql 易读父-子,linq-to-sql,Linq To Sql,我需要将:IQueryable转换为IQueryable 这不起作用,无法将EntitySet转换为IQueryable。谢谢使用: IQueryable<CHILD> result = query.SelectMany(t => t.Children); Distinct从查询中删除重复项 a本机上,您可以使用分组为子级创建分组: IEnumerable<CHILD> result = query.SelectMany(t => t.Children)
IQueryable<CHILD> result = query.SelectMany(t => t.Children);
Distinct从查询中删除重复项
a本机上,您可以使用分组为子级创建分组:
IEnumerable<CHILD> result = query.SelectMany(t => t.Children)
.GroupBy(x => new CHILD {
id = x.id
// add other properties here
})
.Select(g => g.Key);
OfType筛选项目,以便Cast可以执行类型转换。使用:
IQueryable<CHILD> result = query.SelectMany(t => t.Children);
Distinct从查询中删除重复项
a本机上,您可以使用分组为子级创建分组:
IEnumerable<CHILD> result = query.SelectMany(t => t.Children)
.GroupBy(x => new CHILD {
id = x.id
// add other properties here
})
.Select(g => g.Key);
OfType过滤项,以便Cast可以执行类型转换。当您表示Cast时,这意味着您可以将父级转换为子级,即父级继承自子级,或者两者实现相同的接口,尽管这与IQueryable相矛盾。是的,它们在数据库中具有entityset关联,因此子级继承自父级。你的方法有效,但由于某种原因创建了一些重复项。修改了我的答案。然而,您描述的关系是1:n关系。即父母有多个子女,每个子女有一个父母。继承是不同的!它描述了一种类型关系,例如黄瓜属于蔬菜类型。当您获得重复项时,这意味着在1:n关系的情况下,您的子表中有多个具有相同值的项。当您表示强制转换时,这意味着您可以将父项强制转换为子项,即父项继承自子项,或者两者实现相同的接口,尽管这与IQueryable相矛盾。是,它们在数据库中具有entityset关联,因此子项继承自父项。你的方法有效,但由于某种原因创建了一些重复项。修改了我的答案。然而,您描述的关系是1:n关系。即父母有多个子女,每个子女有一个父母。继承是不同的!它描述了一种类型关系,例如黄瓜属于蔬菜类型。当您获得重复项时,这意味着在1:n关系的情况下,您的子表中有多个具有相同值的条目。
someQuery.OfType<TypeToCastTo>().Cast<TypeToCastTo>();