Ricerca 
it-ITen-US
Register
Login
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Print     


DotNetWork Forums
[vb2008] Database e Linq
Last Post 27 Nov 2009 10:46 by Hidden. 4 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Resolved

Posts:663

--
26 Nov 2009 15:01  
Salve ragazzi volevo chiedere delle informazioni che al momento non mi sono per niente chiare. Ho fatto qualche ricerca in internet e anche se ho imparato alcune cose comunque non si è dissipato il mio dubbio.
Il mio problema è: come si utilizza Linq nel caso di un database mdf oppure access?

Es attualmente io per utilizzare i database spesso utilizzo in linea di massima questo sistema.

Dim connectionstring as string="Stringa di connessione di oledb o odbc o sqlserver"
dim Query as string ="Query da applicare"
Dim command as new OledbCommand(Query)
Using connnection as new oledbconnection(connectionstring)
command.connection= connection
connection.open
dim reader as oledbDatareader= command.executereader
miadatatable.load(reader)
reader.close
connectio.close
end using


In questo modo io mi carico i dati di un database in un datatable sulla quale poi opero. Spesso se commetto errori nella query me ne accorgo solo dopo che è stato lanciato il programma.
Per cancellare dei dati in un database o modificare o fare altro il principio è lo stesso.
Ma con Linq come funziona la cosa?
Devo trasformare il mio database in una classe?
Come comunica con il database o il server?

Mi potreste dare informazioni in merito oppure consigliarmi qualche tutorial pratico, ho un bel pò di confusione in testa.

Grazie per il vostro aiuto!

Posts:657

--
26 Nov 2009 15:32  
Puoi partire da qui:
http://msdn.microsoft.com/it-it/library/bb399572.aspx
E leggere in particolare riguardo alla tecnologia Linq to Enities. Io lo ho adoperata e mi sono dimenticato che esistono le query su sql server
Anzi ci sono ma non servono più..
Rudy Azzan

Posts:663

--
27 Nov 2009 07:30  
Chiedo scusa se forse posso sembrare cocciuto ma ho gia letto una miriade di tutorial ma una cosa che mi manca, diciamo il tassello per completare il mio quadro e per dargli forma è capire

Con Linq come faccio a connettermi al database?
Con Linq posso lanciare anche una query di aggiornamento, accodamento, eliminazione, unione, oppure serve solo per query di selezione e poi per tutte le altre operazioni bisogna utilizzare i metodi classici con i command?

Domanda ma se utilizzo linq per le mie query il mio programma non rallenta?

Con il metodo che io utilizzo tramita un command e un datareader mi importa in una mia datatable i mie dati già filtrati. Es. Ho una tabella clienti con 5000 record io volgio sapere solo quelli della provincia di roma con Linq sono costretto a caricarmi prima tutti i dati e quindi un dispendio di tempo e poi applico la query. Come faccio io invece invio direttamente la query e mi ritrovo nella mia datatable attraverso un datareader i dati filtrati es 100 record, risparmiandomi di caricarmi comunque tutti e 5000 record.

Sicuramente i dubbi che ho sono dovuti alla mia totale ignoranza in argomento.

Se qualcuno ha delle indicazioni specifiche per questi miei dubbi sarò lieto di accettarle nel frattempo mi studierò l'articolo del link che mi hai suggerito

Grazie per il vostro supporto.

Posts:657

--
27 Nov 2009 09:42  
Allora, vediamo di andare in ordine:

--Con Linq come faccio a connettermi al database?

R: Te la faccio breve; Per prima cosa aggiungi un nuovo item al tuo progetto ADO.NET Entity data model, segui tutto il wizard, da un nome alla entiry connection quando te lo chiede. Dopo il wizard hai tutti gli oggetti che mappano il db a disposizione. Per creare una connessione nel codice, dichiai una "connessione = new NomeEntityConnection" e sei connesso (quando usi le collezioni, ma per te è trasparente).

--Con Linq posso lanciare anche una query di aggiornamento, accodamento, eliminazione, unione, oppure serve solo per query di selezione e poi per tutte le altre operazioni bisogna utilizzare i metodi classici con i command?

R: Niente di tutto ciò tu hai solo una collezione di oggetti. Quello che aggiungi, elimini, modifichi di questi oggetti (Entities) viene riportato sul db automaticamente quando chiami connessione.SaveChanges()

--Domanda ma se utilizzo linq per le mie query il mio programma non rallenta?

R: No, può anche velocizzarsi invece, dipende dal tipo di complessità e dal numero di oggetti coinvolti nelle funzioni linq che usi.

--Con il metodo che io utilizzo tramita un command e un datareader mi importa in una mia datatable i mie dati già filtrati. Es. Ho una tabella clienti con 5000 record io volgio sapere solo quelli della provincia di roma con Linq sono costretto a caricarmi prima tutti i dati e quindi un dispendio di tempo e poi applico la query. Come faccio io invece invio direttamente la query e mi ritrovo nella mia datatable attraverso un datareader i dati filtrati es 100 record, risparmiandomi di caricarmi comunque tutti e 5000 record.

R: Non sei costretto a caricarti niente, si arragia il sig. Linq per te. Quando usi il metodo linq Es.: .Where per filtrare una collezione, i dati vengono recuperati solo quando utilizzi effettivamante la collezione, non quando dichiari l'operazione di filtro, e ti viene recuperato solo in risultato della where, non tutto il mondo.

--Sicuramente i dubbi che ho sono dovuti alla mia totale ignoranza in argomento.
--Se qualcuno ha delle indicazioni specifiche per questi miei dubbi sarò lieto di accettarle nel frattempo mi studierò l'articolo del link che mi hai suggerito
--Grazie per il vostro supporto.

R: Leggiti il mio link e fai delle prove, vedrai che è più facile a farsi che a dirsi. Se vuoi prenditi un libro, che merita l'argomento, soprattutto con l'avvento del framework 4.0 che vengono introdotte nuove e utili features. E dimenticati di SQL Server (o qualsiasi altro DB), perchè non server più
Anzi il tuo codice funziona e non  cambia, per qualiasi db tu voglia usare .
Rudy Azzan

Posts:663

--
27 Nov 2009 10:46  
Uhao quindi se ho capito bene io utilizzando Ado.net Entity
e associando ai miei controlli, quindi in un certo senso facendo il bindig del mio controllo a Entity nel momendo in cui lo modifico per aggiornare il tutto sul mio database basta che mi richiamo il metodo SaveChanges della connessione.

Per quanto riguarda la velocità in realtà il principio è lo stesso utilizzando il command con un datareader anche se lo dichiaro lui non carica i dati fino a che non li utilizzo e per di più mi carica solo quelli che gli chiedo io.

Ora mi comincia a piacere.

In più mi sembra di aver capito che il mio codice non cambia anche se cambia il database. Mi spiego ho fatto un programma che utilizza un database access attraverso Ado.net Entity dopo imparo SqlServer voglio migrare il database da access a sqlserver non devo cambiare il codice del mio programma ma ben si devo solo modificare l'Entity?

Questo mi piace ancora di più.

Grazie per la tua utile e semplice spiegazione che mi ha chiarito molte idee. Comunque sto già seguendo il tuo consiglio infatti ho già cominciato a studiare il tutorial che mi ha suggerito è fin ora mi sembra tutto abbastanza chiaro.

Grazie
You are not authorized to post a reply.

Active Forums 4.1
       
Articoli
Panoramica degli Eventi Pilotati
Come iniziare a capire com'è fatto WPF (parte 4)
2007/08/14 | Author: Patrizia Cosolo
Miniguida alla OOP con il .NET Framework- Parte II
Le Classi e l'Incapsulamento.
2008/10/09 | Author: Alberto De Luca 
Mixed Fry - General purpouse classes(part 3)
Helper: Two Interfaces to implement Entity classes
2007/10/22 | Author: Sabrina Cosolo
Inheritance in pills (Part 1)
How to create a personalized TreeView
2008/03/22 | Author: Alberto De Luca
Our Dll's in the Add Reference .NET Tab
How to be able to show our DLLs in the Add reference Windows Under the .NET Tab.
2008/07/27 | Author: Sabrina Cosolo
Starting from Scratch with WPF (Part 3)
Rows, deities, brushes and refrigerators (second part)
2007/11/22 | Author: Sabrina Cosolo
Small guide to OOP with .Net framework - Part IV
How to Manage inheritance
2009/07/17 | Author: Alberto De Luca
Memorizzare immagini in SQL Server
un'immagine per la memorizzazione su un campo Image di SQL Server e viceversa
2007/09/04 | Author: Sabrina Cosolo
    Print     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Terms Of Use  .:.  Privacy Statement  .:.  Login  .:.