Entity Framework

There are 13 entries for the tag Entity Framework

Entity Framework e l'attributo ProviderManifestToken

Per una mia applicazione ho creato un EDM a partire da un DB presente su una istanza Sql Server 2005. Per testare l'applicazione, per ragioni che non mi è dato sapere, mi è stato fornito un accesso ad una istanza di Sql Server 2000. Apparentemente l'applicazione funzionava ancora, sennonché, in alcuni casi, veniva sollevata una eccezione con questo messaggio: line 43: Incorrect syntax near '('. Girovagando per il web ho scoperto l'esistenza di un attributo del file SSDL, il ProviderManifestToken. Impostando questo attributo a 2000 anzichè 2005, il problema non veniva più sollevato a...

Entity Framework e Sql Server Compact

Nel tempo libero sto facendo un progettino, per provare finalmente WPF. Ho deciso di usare Entity Framework e come base di dati un database SqlCompact; la versione del Sql Compact è la 3.5 sp1. Nel gestire anagrafiche di comuni, province e regioni ho usato come chiave primaria i codici istat salvati come varchar. A causa di questa scelta mi è capitato di imbattermi in un errore singolare: ogni volta che provavo a caricare le i comuni di una provincia (o le province di una regione) con Deferred Load veniva sollevata una eccezione con questo messaggio ...

Entity SQL e campi DateTime

Mi è capitato di dover scrivere una query ESQL con un campo DateTime nella clausola where. Se per qualsiasi motivo non si possono (o non si vogliono) usare i parametri vi è un modo semplice per poter rendere compatibile una stringa contenente una data con ESQL: il seguente esempio (che estrae tutte le persone più giovani di me :) ) vale più di mille parole: "select value p from Persone AS p where p.DataNascita > DATETIME'1984-05-28 00:00'" In sostanza si deve usare la Keyword DATETIME seguita da una data nel formato 'yyyy-MM-dd hh:mm'. Per quanto ho capito...

Linq e il metodo Distinct

Ultimamente ho avuto la necessità di estrarre tutti gli elementi distinti di una query Linq. La query in questione interroga un EntitySet e restituisce come risultato una proiezione dei dati di una Entity all'interno di una classe; si presenta all'incirca così: var result = (from c in dataContext.CaratteristicheChimicheSet where codition orderby order descending select new Chemical() { ...

TransactionScope ed Entity Framework

Io non so se sia dovuto a delle incompatibilità note, ma non a me :), se sia un problema della mia configuarazione che non riesco a capire, o qualsiasi altra cosa, ma quando uso il TransactionScope con EntityFramework ottengo sempre una eccezione con questo messaggio. System.Data.EntityException: The underlying provider failed on EnlistTransaction La mia configurazione attuale prevede due Windows Server 2003 sp2 uno con l'Application Server e l'altro col DB Sql Server 2005 entrambi col DTC attivato e con privilegi di accesso alla rete. Non ho approfondito ulteriormente la situazione perchè comunque questa...

WCF e scambio di dati: Entity vs DTO in salsa Entity Framework

Quando si progetta una applicazione basata su un Domain Model (nel mio caso un Entity Data Model di EF) il cui service layer dovrà essere esposto con servizi WCF ci si scontra con un dubbio: serializzo le Entity o mi creo dei DTO per spostare i dati da un layer (e spesso anche tier) all'altro? Questo dubbio ha una risposta scontata, che molti architetti ti darebbero senza chiedere nemmeno delucidazioni sul tipo di progetto: DTO forever. Ebbene anch'io sono arrivato a questa conclusione e ci sono voluto arrivare per gradi. Si perchè, da buon testardo che sono, ho voluto...

Entity Framework e lo strano errore

Ho voglia di condividere una esperienza che mi è capitata un paio di settimane fa. Tra le altre cose, in questo periodo mi sto occupando del porting di un progetto Legacy, di cui non verrà conservato nulla se non la base di dati. Visti i tempi molto rilassati abbiamo deciso di usarlo come banco di prova per Entity Framework ed assicuro che è un gran bel banco di prova: la creazione del dominio non si limita ad importare lo schema dal DB che è tutt'altro che semplice e "ben fatto". Arrivo al dunque: inizialmente abbiamo creato l'EDM a...

LINQ ti cambia la vita!

Ammetto che mi emoziono per poco, ma... Da quando ho cominciato ad usarlo l'ho sempre pensato; ogni giorno che passa è sempre una nuova conferma; sentire qualcuno di un certo spessore che lo dice in pubblico ti convince sempre di più. Ed oggi, ancora una volta, mi sono emozionato della velocità e l'eleganza con cui LINQ ti risolve i problemi di query, tanto da indurmi a scrivere questo post. Il mio problema era semplice: dato un array contenente degli oggetti dovevo ottenerne un sottoinsieme in base ad una condizione; la condizione consisteva nel verificare se...

Entity SQL e risultati delle query

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...

Considerazioni su Microsoft Days di Milano

É il secondo evento a cui partecipo (il primo sono stati i Community Days). Devo dire che queste giornate mi piacciono. Ci si incontra, si vedono i mostri sacri delle community e di mamma MS che si aggirano e si mischiano coi poveri mortali e si assiste, spesso, a sessioni molto interessanti. Il giudizio complessivo, forse falsato da questo pregiudizio positivo, non può che essere molto positivo. Cominciamo: devo dire che dopo la keynote vedere arrivare l'autore di questo a parlarci di EF mi ha fatto un attimo saltare sulla sedia. Devo dire che in questo caso ero prevenuto;...

Entity Framework ed eliminazioni a cascata

Quando esiste una associazione di tipo master/detail tra due entità con molteplicità (1 a *), è probabile che si voglia definire una regola che, in seguito all'eliminazione di un master, elimini automaticamente tutti suoi i detail. Per farlo è sufficiente impostare la OnDelete action all'interno dell'associazione, nella definizione del modello concettuale <Association Name="FK_VAL_CAMP_TST_CAMP"> <End Role="TST_CAMP" Type="LottiModel.Lotto" Multiplicity="1"> <OnDelete Action="Cascade" /> ...

Entity Framework e vincoli sul mapping

Una cosa che mi piace di Entity Framework è che ti supporta a compile time durante la creazione dei mapping aiutandoti a non crearne di "scorretti" o potenzialmente dannosi. Mi è capitato di creare un Domain a partire da un database molto vecchio e mal concio e devo dire che gli errori di compilazioni mi sono serviti non poco a creare un mapping corretto e funzionante. Una su tutte me la voglio segnare perchè mi ha fatto perdere un po' di tempo. Le chiavi esterne, non essendo associate a dei vincoli di Foreign Key sul DB, mi venivano "tirate...

Entity Framework e Lazy Load

Sui vari forum e blog se ne parla già molto. A quanto si legge, a volte sembra che ancora ci siano dei dubbi sul fatto che EF in qualche modo implementi Lazy Load. Non è così. Entity Framework in nessun modo implementa Lazy Load, come sostengono anche fonti più autorevoli di me. EF permette al massimo di definire il Fetch Plan per le Navigation Property di una Entity; si può quindi decidere se caricare i riferimenti in modo Eager o Deferred. Il caricamento Eager avviene indicando all'interno della query che si va ad eseguire quali sono le Navigation...