Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Linq in VB2008
Forum - C# / VB.NET - Linq in VB2008

Avatar
bardygab (Normal User)
Newbie


Messaggi: 5
Iscritto: 09/05/2008

Segnala al moderatore
Postato alle 16:55
Venerdì, 09/05/2008
Ciao a tutti
c'è qualcuno che mi sa dire la la funzione Linq in VB2008 è in grado di funzionare con database Access?
Se si avete qualche esempio di codice?
Grazie a tutti e complimenti per il sito!!!

Lele

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:15
Venerdì, 09/05/2008
Sì Linq si può usare anche coi db access. Ecco un esempio:
Codice sorgente - presumibilmente VB.NET

  1. Imports System.Data.Linq
  2. Module Module1
  3.     'Per usare Linq, si devono traslare le tuple del database
  4.     'su classi del .net. Dato che uso un database di esempio
  5.     'che contiene dati relativi a persone, creo una classe
  6.     'Person.
  7.     'La classe deve esporre l'attributo Table e specificare
  8.     'eventualmente il nome della tabella da leggere e
  9.     'trasformare in oggetti dal database (in questo caso Tabella1)
  10.     <Mapping.Table(Name:="Tabella1")> _
  11.     Public Class Person
  12.         Private _ID As Int32
  13.         Private _Name, _Surname As String
  14.  
  15.         'Chiave primaria
  16.         <Mapping.Column(IsPrimaryKey:=True)> _
  17.         Public Property ID() As Int32
  18.             Get
  19.                 Return _ID
  20.             End Get
  21.             Set(ByVal value As Int32)
  22.                 _ID = value
  23.             End Set
  24.         End Property
  25.  
  26.         'Tutti i membri di classe rispecchiano un attributo
  27.         'della relazione nel database relazionale. Devono
  28.         'esporre un attributo Column che li associa alla
  29.         'colonna corrispondente (meglio usare lo stesso nome)
  30.         <Mapping.Column()> _
  31.         Public Property Nome() As String
  32.             Get
  33.                 Return _Name
  34.             End Get
  35.             Set(ByVal value As String)
  36.                 _Name = value
  37.             End Set
  38.         End Property
  39.  
  40.         <Mapping.Column()> _
  41.         Public Property Cognome() As String
  42.             Get
  43.                 Return _Surname
  44.             End Get
  45.             Set(ByVal value As String)
  46.                 _Surname = value
  47.             End Set
  48.         End Property
  49.     End Class
  50.  
  51.     Sub Main()
  52.         'Crea la connessione
  53.         Dim Con As New OleDb.OleDbConnection( _
  54.             "Provider=Microsoft.JET.OLEDB.4.0;Data Source=db1.mdb")
  55.         'Crea un collegamento linq a tipizzazione forte col database
  56.         'mediante la connessione
  57.         Dim DB As New DataContext(Con)
  58.         'Estra la tabella in questione, facendo uso dell'attributo
  59.         'specificato e la trasforma in una tabella di oggetti Person
  60.         Dim Persons As Table(Of Person) = _
  61.             DB.GetTable(Of Person)()
  62.         'Questa è l'istruzione Linq che da tale tabella seleziona
  63.         'solo le persone con nome Giovanni
  64.         Dim SelectedPersons = _
  65.            From P As Person In Persons Where P.Nome = "Giovanni" Select P
  66.  
  67.         'Scrive i risultati a schermo
  68.         For Each P As Person In SelectedPersons
  69.             Console.WriteLine(P.Nome & " " & P.Cognome)
  70.         Next
  71.  
  72.         Console.ReadLine()
  73.     End Sub
  74. End Module


PM Quote