gpt4 book ai didi

c# - Entity Framework 继承 - 仅检索父类型

转载 作者:太空狗 更新时间:2023-10-30 00:57:03 25 4
gpt4 key购买 nike

I 供应商类:

public class Supplier {
....
....
....
}

我也有分包商类,分包商是供应商:

public class Subcontractor:Supplier {
....
....
....
}

在我的数据库中,我有带有数据的 Suppliers 表和另一个带有 id 字段的表,它充当 suppliers 表的外键,我也有 subcintractor 数据。

在 Entity Framework edmx文件中我声明了继承关系: inheritance

现在我想获取所有不是分包商的供应商,所以我正在做:

context.Suppliers.OfType<Supplier>();

但这也会返回分包商..

我如何才能只获得非分包商的供应商?

最佳答案

试一试:

context.Suppliers.Where(s => !(s is Subcontractor));

编辑

如果你有多个派生自 Supplier 的类LINQ to Entities 的唯一选择似乎是这样的:

context.Suppliers.Where(s => !(s is Subcontractor) 
&& !(s is DerivedClass2)
&& !(s is DerivedClass3)); // etc.

实体 SQL 支持 ONLY keyword允许查询特定类型。但是相应的对应物不能用作 LINQ 运算符。

Here是一个 OfTypeOnly<TEntity> 的实现运算符,但它大量使用元数据信息和手动表达式构建,在简单场景中可能会过大。

关于c# - Entity Framework 继承 - 仅检索父类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com