1

使用 TPH 时,我有不同的类型从基础继承。我们有一个跨抽象类型查询的搜索。在结果中,我们要显示类型:

IE。抽象车辆

汽车:车辆卡车:车辆

在结果中,我想显示“类型” - 即。“汽车”和“卡车”。

我试图使用 GetType().Name 但这失败了。

这是示例:

 IQueryable<CompanySearchResult> q = from company in _ctx.Companies
                                                select new CompanySearchResult
                                                {                                                        
                                                    CompanyName = company.CompanyName,
                                                    CompanyId = company.Id,
                                                    Type = company.GetType().Name
                                                };
4

1 回答 1

1

您必须推迟投影,直到内存中有实体

 IEnumerable<CompanySearchResult> q = 
    _ctx.Companies.ToList()
        .Select( company =>
            new CompanySearchResult
            {                                                        
                CompanyName = company.CompanyName,
                CompanyId = company.Id,
                Type = company.GetType().Name
            } );

特别是,这意味着您不应该IQueryable在投影之后仍然拥有,因为您对内存中的集合进行操作。

于 2014-09-26T18:13:49.707 回答