Quando si usa TPH, ho diversi tipi che ereditano da una base. Abbiamo una ricerca che richiede il tipo astratto. Nei risultati, vogliamo mostrare il tipo:
vale a dire. veicolo astratto
Auto: veicolo camion: veicolo
nei risultati, voglio mostrare 'tipo' - es. 'Auto' e 'Camion'.
Ho provato a utilizzare GetType (). Nome ma questo non funziona.
Ecco il campione:
IQueryable<CompanySearchResult> q = from company in _ctx.Companies
select new CompanySearchResult
{
CompanyName = company.CompanyName,
CompanyId = company.Id,
Type = company.GetType().Name
};
Devi posticipare la proiezione finché non hai entità in memoria
IEnumerable<CompanySearchResult> q =
_ctx.Companies.ToList()
.Select( company =>
new CompanySearchResult
{
CompanyName = company.CompanyName,
CompanyId = company.Id,
Type = company.GetType().Name
} );
In particolare, ciò significa che non si dovrebbe avere IQueryable
dopo la proiezione, poiché si opera su una raccolta in memoria.