2012-03-28 2 views

ответ

0

Вот blog post, который иллюстрирует шаг за шагом учебник о том, как вы могли бы использовать EF с MySQL. Все, что вам нужно сделать, это установить MySQL Connector.

0

Вот как я решил эту проблему. Предположим, ваша таблица MySQL называется MYTABLE выглядит следующим образом:

+----+-------------+--------------+--------+------------+ 
| id | name  | phone  | office | department | 
+----+-------------+--------------+--------+------------+ 
| 1 | Brian Baker | 858-555-1212 | N-110 | software | 
+----+-------------+--------------+--------+------------+ 
| 2 | Dana Damien | 858-555-1414 | N-120 | hardware | 
+----+-------------+--------------+--------+------------+ 

Используйте ссылки в ответе выше, чтобы получить разъем (скачать MySql.Data.dll и добавить его в ваших ссылках проекта), а затем использовать что-то подобное к этому коду:

Imports System.Data 
Imports MySql.Data.MySqlClient 

Public Class MyClass 
    Public Sub getData() 
     Dim myDataSet As New DataSet() 

     Try 
      Dim connStr As String = "Database=xxx;Data Source=xxx;User Id=xxx; 
       Password=xxx;Allow Zero Datetime=true;Port=####" 
      Dim connection As New MySqlConnection(connStr) 
      Dim query As String = "select * from myTable where department='software';" 
      Dim cmd As New MySqlDataAdapter(query, connection) 
      connection.Open() 
      cmd.Fill(myDataSet) 
      connection.Close() 
      cmd.Dispose() 
     Catch ex As Exception 
      MsgBox("Error opening database: " & ex.Message) 
      Exit Sub 
     End Try 

     Dim employeeData As DataTable = myDataSet.Tables(0) 

     Dim myQuery = From employee In employeeData.AsEnumerable() 
         Where employee.Field(Of String)(4) = "software" 
         Select New With { 
         .name = employee.Field(Of String)(1), 
         .phone = employee.Field(Of String)(2), 
         .office = employee.Field(Of String)(3) 
         } 

     For Each employee In myQuery 
      Console.Write("Name: " + employee.name) 
      Console.Write("Phone: " + employee.phone) 
      Console.WriteLine("Office: " + employee.office) 
     Next 
    End Sub 
End Class 

Обратите внимание, что мы обращаемся к столбцам запроса Linq по номеру и что они основаны на 0.