怎么在.NET2.0下使用LinqMySQL,下面手把手教您: 一、准备工作,我们需要安装一些东西,并拷贝一些东西。 0.打开VS2008或VS2010,新建工程控制台项目LinqMySQL,目标程序集为.NET 3.5 1.下载并一路NEXT安装MySQL 2.下载并一路NEXT安装MySQLWorkBench 打开,并创建test数据库,Customers和Orders两张表 ----------------------------------------------------- create table Customers foreign key(CustomerID) references Customers(CustomerID) ----------------------------------------------------- 3.下载并一路NEXT安装MySQL .NET Connector 6.3.2 4.下载并解压DbLinq,并设置路径到系统环境变量 5.在LinqMySql目录下新建LinqDlls文件夹 打开文件夹 C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5 拷贝以下几个Dll到LinqDlls文件夹 ----------------------------------------------------- System.Core.dll ----------------------------------------------------- 6.进入MySQL\MySQL Connector Net 6.3.2\Assemblies\v2.0目录下拷贝 ----------------------------------------------------- MySql.Data.dll ----------------------------------------------------- 到DbLinq的安装目录
二、开始工作了,我们一步步来。 1.打开CMD,CD到DbLinq目录使用DbMetal.exe创建MySQL的DataContext,命令如下: ----------------------------------------------------- DbMetal.exe -provider=MySql -database:MyDatebase -server:localhost -user:mysqluser -passWord:yourpassword -namespace:LinqMySql -code:TestDataContext.cs -sprocs ----------------------------------------------------- 将生成的TestDataContext.cs剪切到LinqMySql项目根目录,并添加到LinqMySql项目 2.在Main函数里面添加如下代码 -----------------------------------------------------
using (var conn = new MySqlConnection(connStr)){ var t = new Test(conn); var data = from customer in t.Customers select customer.ContractName; foreach (var d in data) { Console.WriteLine(d); }}-----------------------------------------------------3.编译并运行,成功。 4.接下来我们要将.NET 3.5退化到.NET2.0,首先将工程的目标程序集改为.NET2.0, 然后会发现Reference里面有几个dll变为感叹号,将他们都删除,然后将LinqDlls文件夹下的 几个Dll都添加至Referece,然后分别将这几个Dll属性里面的copy local设置为True,将Specify Version设置为False 5.再次编译,则成功!
三、其他故事呢?尝试在.NET2.0下使用LinqDataSet,并且数据库使用MySQL 1.重启VS,使得刚刚添加到MySQL连接器被VS加载。 2.打开Server Explorer,右键Data Connection,添加新链接,改变数据连接器 选择MySql Connector,一路NEXT输入必要的服务器地址,用户名,密码,并测试连接是否成功。 3.将LinqMySql目标程序集更改为.NET3.5,右键工程添加强类型DataSet。 将Server Explorer里的Mysql test数据库下的Customers和Orders表添加到DataSet里。 4.在Main函数里编写测试代码 ----------------------------------------------------- 6.等等,现在还只是.NET3.5的,如何来改变到.NET2.0? 尝试直接将目标程序集改变为.NET2.0,编译,失败! 7.TMD查看了下DataSet1.designer.cs,发现在.NET3.5下的如下代码 -----------------------------------------------------public partial class customersDataTable : global::System.Data.TypedTableBase<customersRow>----------------------------------------------------- 现在变成了 ----------------------------------------------------- ----------------------------------------------------- DataSet1.Designer.cs ------------------------------------------------------ 几个文件拷贝出来做一个备份,然后将目标程序集再次设置为.NET2.0,然后。。 然后将刚才备份的以上几个文件重新拷贝回工程目录,再次编译运行,成功! |