网站源码下载PR查询短网址
首页编程数据库网页图形冲浪邮件下载浏览器QQ系统办公软件站长安全手机邮件认证组网通信


网站首页 -> 网络编程 -> ASP.NET技巧
.NET2.0下使用LinqMySQL

发表日期:2010-8-16



一、准备工作,我们需要安装一些东西,并拷贝一些东西。

0.打开VS2008或VS2010,新建工程控制台项目LinqMySQL,目标程序集为.NET 3.5

1.下载并一路NEXT安装MySQL

2.下载并一路NEXT安装MySQLWorkBench 打开,并创建test数据库,Customers和Orders两张表

-----------------------------------------------------

create table Customers
(
    CustomerID varchar(50) not null PRimary key,
    ContractName varchar(50) not null,
    Phone varchar(50) not null,
    City varchar(50) not null,
    Country varchar(50) not null
)
create table Orders
(
    OrderID int not null primary key,
    OrderDate DateTime,
    CustomerId varchar(50) not null,

    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
   System.Data.DataSetExtensions.dll
   System.Data.Linq.dll
   System.Runtime.Serialization.dll
   System.Xml.Linq.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函数里面添加如下代码

   -----------------------------------------------------


   string connStr = @"server=localhost;database=test;user=mysqluser;pwd=yourpassword;";

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函数里编写测试代码

-----------------------------------------------------
using (var dataSet = new DataSet1()){    var customerAdapter = new DataSet1TableAdapters.CustomersTableAdapter();    var orderAdapter = new DataSet1TableAdapters.OrdersTableAdapter();    customerAdapter.Fill(dataSet.Customers);    orderAdapter.Fill(dataSet.Orders);    var 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.CustomerID);    }}-----------------------------------------------------5.编译并运行,成功!

6.等等,现在还只是.NET3.5的,如何来改变到.NET2.0?

  尝试直接将目标程序集改变为.NET2.0,编译,失败!

7.TMD查看了下DataSet1.designer.cs,发现在.NET3.5下的如下代码

-----------------------------------------------------public partial class customersDataTable : global::System.Data.TypedTableBase<customersRow>-----------------------------------------------------  现在变成了

-----------------------------------------------------
public partial class customersDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable-----------------------------------------------------8.所以呢?怎么办?重新将目标程序集设置为.NET3.5,然后到LinqMySql目录下将

  -----------------------------------------------------

  DataSet1.Designer.cs
  DataSet1.xsc
  DataSet1.xsd
  DataSet1.xss

  ------------------------------------------------------

  几个文件拷贝出来做一个备份,然后将目标程序集再次设置为.NET2.0,然后。。

  然后将刚才备份的以上几个文件重新拷贝回工程目录,再次编译运行,成功!

9.至此,我们成功在.NET2.0下使用LinqSQL和LinqDataSet来使用MySql了,但是

   我并没有成功在.NET2.0下成功使用LinqEntity来使用MySql。以后再说吧。



上一篇:微软简化Visual Studio 非程序员也能开发软件 人气:3344
下一篇:微软表示即将发布针对ASP.net的漏洞补丁 人气:2919
网站文章搜索
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<ASP.NET技巧教程>的内容
今日更新文章
·PS打造清爽艳丽的海景婚片
·Photoshop打造漂亮的黄绿色非主流MM
·PS调出MM秀丽清爽的色彩
·Photoshop打造洁白如玉的完美肌肤
·Photoshop给MM打造一幅光环艺术照
·Photoshop制作个性青黄色非主流效果
·PS给人物照片添加艺术背景
·Photoshop打造柔美的紫黄色时装美女图片
·Photoshop加强人像图片的质感并增加梦幻
·怎样让新站从开始就拥有高权重
·SEO市场的高端盈利模式详细分解
·站内高质量原创文章有利于网站优化
本栏目推荐文章
·.NET跨平台的第一步
·初学者的JAVA
·在.NET中使用脚本引擎
·巧用缓存提高asp程序的性能
·链表的c语言实现(五)
·在Mascot Capsule v3中使用多个纹理
·用hbm2java生成Hibernate类
·PHP 高手之路(二)
·用Delphi编写CGI程序(五)
·php中检查email完整性
·C语言常用的三种排序方法总结与探讨
·Java API 中文版
Copyright © 2005-2012 www.Devdao.com All rights reserved | 沪ICP备05001343号 sitemap