使用TPH时,我有从基础继承的不同类型。我们有一个搜索抽象类型的查询。在结果中,我们想要显示类型:
即。抽象车辆
汽车:车辆 卡车:车辆
在结果中,我想显示'type' - 即。 '汽车'和'卡车'。
我尝试使用GetType()。名称,但这失败了。
以下是样本:
IQueryable<CompanySearchResult> q = from company in _ctx.Companies
select new CompanySearchResult
{
CompanyName = company.CompanyName,
CompanyId = company.Id,
Type = company.GetType().Name
};
答案 0 :(得分:1)
你必须推迟投影,直到内存中有实体
IEnumerable<CompanySearchResult> q =
_ctx.Companies.ToList()
.Select( company =>
new CompanySearchResult
{
CompanyName = company.CompanyName,
CompanyId = company.Id,
Type = company.GetType().Name
} );
特别是,这意味着您在投影后不应该IQueryable
,因为您在内存中收集。