1. Trabalho de preparação, precisamos instalar algumas coisas e copiar algumas coisas.
0. Abra VS2008 ou VS2010, crie um novo projeto de console de engenharia LinqMySQL e o assembly de destino é .NET 3.5
1. Baixe e instale o MySQL até NEXT
2. Baixe e instale o MySQLWorkBench até NEXT, abra-o e crie o banco de dados de teste, as tabelas Clientes e Pedidos.
-------------------------------------------------- ---
criar tabela Clientes
(
CustomerID varchar(50) chave primária não nula,
ContractName varchar(50) não nulo,
Telefone varchar(50) não nulo,
Cidade varchar(50) não nula,
País varchar(50) não nulo
)
criar pedidos de mesa
(
OrderID int chave primária não nula,
Data do pedido DataHora,
CustomerId varchar(50) não nulo,
chave estrangeira (CustomerID) faz referência a Clientes (CustomerID)
)
-------------------------------------------------- ---
3. Baixe e PRÓXIMO instale o MySQL .NET Connector 6.3.2
4. Baixe e descompacte o DbLinq e defina o caminho para a variável de ambiente do sistema
5. Crie uma nova pasta LinqDlls no diretório LinqMySql
Abra a pasta C:Arquivos de ProgramasReference AssembliesMicrosoftFrameworkv3.5
Copie as seguintes DLLs para a pasta LinqDlls
-------------------------------------------------- ---
System.Core.dll
System.Data.DataSetExtensions.dll
System.Data.Linq.dll
System.Runtime.Serialization.dll
System.xml.Linq.dll
-------------------------------------------------- ---
6. Vá para o diretório MySQLMySQL Connector Net 6.3.2Assembliesv2.0 e copie
-------------------------------------------------- ---
MySql.Data.dll
-------------------------------------------------- ---
Vá para o diretório de instalação do DbLinq
2. Vamos começar a trabalhar, vamos fazer passo a passo.
1. Abra CMD, CD no diretório DbLinq e use DbMetal.exe para criar o MySQL DataContext O comando é o seguinte:
-------------------------------------------------- ---
DbMetal.exe
-provedor=MySql
-banco de dados:MeuBaseDeDatas
-servidor:localhost
-usuário:mysqluser
-passWord:suasenha
-namespace:LinqMySql
-código:TestDataContext.cs
-sprocs
-------------------------------------------------- ---
Corte o TestDataContext.cs gerado para o diretório raiz do projeto LinqMySql e adicione-o ao projeto LinqMySql
2. Adicione o seguinte código na função principal
-------------------------------------------------- ---
string connStr = @"server=localhost;database=test;user=mysqluser;pwd=suasenha;";
usando (var conn = new MySqlConnection(connStr)){ var t = new Test(conn var data = from customer in t.Customers select customer.ContractName) { Console.WriteLine(d); }}------------------------------------------------ -----3. Compile e execute com sucesso.
4. Em seguida, precisamos degradar o .NET 3.5 para .NET2.0. Primeiro, altere o assembly de destino do projeto para .NET2.0.
Então você descobrirá que várias DLLs na Referência se tornam pontos de exclamação, exclua todas elas e altere as DLLs na pasta LinqDlls
Adicione várias DLLs ao Referece e defina copy local como True e Specific Version como False nas propriedades dessas DLLs.
5. Compile novamente e terá sucesso!
3. E quanto a outras histórias? Tentando usar LinqDataSet em .NET2.0 e o banco de dados usa MySQL
1. Reinicie o VS para que o conector MySQL recém-adicionado seja carregado pelo VS.
2. Abra o Server Explorer, clique com o botão direito em Conexão de dados, adicione um novo link e altere o conector de dados
Selecione Conector MySql, insira o endereço do servidor, nome de usuário e senha necessários até NEXT e teste se a conexão foi bem-sucedida.
3. Altere o assembly de destino LinqMySql para .NET3.5, clique com o botão direito no projeto e adicione um DataSet fortemente tipado.
Adicione as tabelas Clientes e Pedidos no banco de dados de teste Mysql no Server Explorer ao DataSet.
4. Escreva o código de teste na função principal
-------------------------------------------------- ---
usando (var dataSet = new DataSet1()){ var customerAdapter = new DataSet1TableAdapters.CustomersTableAdapter(); query = from order in dataSet.Orders where order.OrderDate.Date > new DateTime(2010, 8, 1) select new { order.OrderID, order.CustomerID } foreach (var order in query) { Console.WriteLine(order. IDDoCliente); }}-------------------------------------------- --- --------5. Compile e execute, sucesso!
6. Espere, agora é apenas .NET3.5, como mudar para .NET2.0?
Tente alterar diretamente o assembly de destino para .NET2.0, compile e falhe!
7.TMD verificou DataSet1.designer.cs e encontrou o seguinte código em .NET3.5
-------------------------------------------------- ---classe parcial pública clientsDataTable : global::System.Data.TypedTableBase<customersRow>------------------------------------------ --- -------------------------- Agora se tornou
-------------------------------------------------- ---
classe parcial pública clientesDataTable: global::System.Data.DataTable, global::System.Collections.IEnumerable---------------------------- -- --------------------------8.Então? o que fazer? Redefina o assembly de destino para .NET3.5 e vá para o diretório LinqMySql para
-------------------------------------------------- ---
DataSet1.Designer.cs
DataSet1.xsc
DataSet1.xsd
DataSet1.xss
-------------------------------------------------- ----
Copie alguns arquivos para fazer um backup e, em seguida, defina o assembly de destino como .NET2.0 novamente e, em seguida. .
Em seguida, copie os arquivos acima dos quais você acabou de fazer backup para o diretório do projeto, compile e execute novamente, sucesso!
9. Neste ponto, usamos com sucesso LinqSQL e LinqDataSet para usar MySql em .NET2.0, mas
Não usei o LinqEntity com êxito para usar o MySql no .NET2.0. Vamos falar sobre isso mais tarde.