Sto provando Entity Sql per interrogare il mio dominio con query create dinamicamente e mi sono imbattuto in un problema: vorrei che la query ritornasse un Set di Entity del mio dominio, mentre se eseguo una query in questo modo:
query = "select c from GestionaleEntities.Customers as c where (c.CustomerCode = 'C0001')";
this.dataContext.CreateQuery<Customers>(query).ToList();
viene generata una eccezione con questo messaggio:
{"Specified cast from a materialized 'System.Data.Objects.MaterializedDataRecord' to 'Techsol.Gestionale.Domain.Customers' is not valid."}
dal quale si deduce che il tipo ritornato dalla query, ovvero un generico MaterializedDataRecord, non è proprio il tipo che mi aspettavo ovvero delle istanze delle mie entity.
Per fare in modo che la query ritornasse delle istanze di entity, è stato sufficiente aggiungere la parola chiave "value" dopo "select" in questo modo:
query = "select value c from GestionaleEntities.Customers as c where (c.CustomerCode = 'C0001')";
e la query ritorna le istanze delle nostre entity al posto del generico MaterializedDataRecord.
Matteo