Dubbio amletico sul codice SQL di Entity Framework con il Table per Hierarchy

di Stefano Mostarda, in Entity Framework In Action,

Stavo facendo un pò di prove per smanettare con la gestione del Table per Hierarchy in Entity Framework. Innanzitutto dopo un impatto iniziale alquanto dramamtico, devo dire che il designer visuale mi ha aiutato non poco a disegnare la struttura partendo dalla classe autogenerata dal database. Visto che il designer è forse la cosa uscita peggio da Entity Framework, tutto sommato direi che questa è una buona cosa.

Dopo aver mappato tutto come si deve, ho eseguito una semplice query per trovare tutti gli oggetti: ctx.Company().ToList();

Quello che mi ha sorpreso è vedere che il generatore di codice di Entity Framework ha generato questo SQL:

SELECT
[Extent1].[Type] AS [Type],
[Extent1].[CompanyId] AS [CompanyId],
[Extent1].[Name] AS [Name],
[Extent1].[BillingAddress] AS [BillingAddress],
[Extent1].[BillingCity] AS [BillingCity],
[Extent1].[BillingZipCode] AS [BillingZipCode],
[Extent1].[BillingCountry] AS [BillingCountry],
[Extent1].[ShippingAddress] AS [ShippingAddress],
[Extent1].[ShippingCity] AS [ShippingCity],
[Extent1].[ShippingZipCode] AS [ShippingZipCode],
[Extent1].[ShippingCountry] AS [ShippingCountry],
[Extent1].[WSUserName] AS [WSUserName],
[Extent1].[WSPassword] AS [WSPassword],
[Extent1].[WSEnabled] AS [WSEnabled]
FROM [dbo].[Company] AS [Extent1]
WHERE ([Extent1].[Type] = 'C') OR ([Extent1].[Type] = 'S')

Ora, type è la colonna che mi fa da discriminatore tra i vari tipi che la tabella contiene, ma visto che tanto sto chiedendo tutti i tipi, è necessaria quella OR? Non capisco se sta li per sicurezza così che se ci sono altri record con un type diverso questi vengono ignorati, oppure sta li per errore.

 

Stay tuned...

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese