1.งานเตรียมการเราต้องติดตั้งบางอย่างและคัดลอกบางอย่าง
0. เปิด VS2008 หรือ VS2010 สร้างโปรเจ็กต์คอนโซลวิศวกรรมใหม่ LinqMySQL และแอสเซมบลีเป้าหมายคือ .NET 3.5
1. ดาวน์โหลดและติดตั้ง MySQL ไปจนถึง NEXT
2. ดาวน์โหลดและติดตั้ง MySQLWorkBench ไปจนถึง NEXT เปิดและสร้างฐานข้อมูลทดสอบ ตารางลูกค้า และคำสั่งซื้อ
-------------------------------------------------- -------------------------------------------------- ---
สร้างตารางลูกค้า
-
CustomerID varchar(50) ไม่ใช่คีย์หลักที่เป็นโมฆะ
ContractName varchar(50) ไม่เป็นโมฆะ
โทรศัพท์ varchar (50) ไม่เป็นโมฆะ
City varchar(50) ไม่เป็นโมฆะ
Country varchar(50) ไม่เป็นโมฆะ
-
สร้างคำสั่งซื้อตาราง
-
OrderID int ไม่ใช่คีย์หลักที่เป็นโมฆะ
วันที่สั่งซื้อ วันที่และเวลา
CustomerId varchar(50) ไม่เป็นโมฆะ
คีย์ต่างประเทศ (CustomerID) อ้างอิงลูกค้า (CustomerID)
-
-------------------------------------------------- -------------------------------------------------- ---
3. ดาวน์โหลดและถัดไปติดตั้ง MySQL .NET Connector 6.3.2
4. ดาวน์โหลดและแตกไฟล์ DbLinq และตั้งค่าพาธไปยังตัวแปรสภาพแวดล้อมของระบบ
5. สร้างโฟลเดอร์ LinqDlls ใหม่ในไดเรกทอรี LinqMySql
เปิดโฟลเดอร์ C:Program FilesReference AssembliesMicrosoftFrameworkv3.5
คัดลอก Dll ต่อไปนี้ไปยังโฟลเดอร์ LinqDlls
-------------------------------------------------- -------------------------------------------------- ---
System.Core.dll
System.Data.DataSetExtensions.dll
System.Data.Linq.dll
System.Runtime.Serialization.dll
System.xml.Linq.dll
-------------------------------------------------- -------------------------------------------------- ---
6. ไปที่ไดเร็กทอรี MySQLMySQL Connector Net 6.3.2Assembliesv2.0 และคัดลอก
-------------------------------------------------- -------------------------------------------------- ---
MySql.Data.dll
-------------------------------------------------- -------------------------------------------------- ---
ไปที่ไดเร็กทอรีการติดตั้ง DbLinq
2. มาเริ่มทำงานกันเถอะ ทีละขั้นตอน
1. เปิด CMD, CD ไปยังไดเร็กทอรี DbLinq และใช้ DbMetal.exe เพื่อสร้าง MySQL DataContext คำสั่งมีดังนี้:
-------------------------------------------------- -------------------------------------------------- ---
ดีบีเมทัล.exe
-ผู้ให้บริการ=MySql
-ฐานข้อมูล:MyDatebase
-เซิร์ฟเวอร์:localhost
- ผู้ใช้: mysqluser
-passWord:รหัสผ่านของคุณ
-เนมสเปซ:LinqMySql
-รหัส: TestDataContext.cs
-sprox
-------------------------------------------------- -------------------------------------------------- ---
ตัด TestDataContext.cs ที่สร้างขึ้นไปยังไดเร็กทอรีรากของโปรเจ็กต์ LinqMySql และเพิ่มลงในโปรเจ็กต์ LinqMySql
2. เพิ่มรหัสต่อไปนี้ในฟังก์ชันหลัก
-------------------------------------------------- -------------------------------------------------- ---
string connStr = @"server=localhost;database=test;user=mysqluser;pwd=รหัสผ่านของคุณ;";
ใช้ (var conn = new MySqlConnection(connStr)){ var t = new Test(conn); var data = จากลูกค้าใน t.Customers เลือก customer.ContractName; foreach (var d ใน data) { Console.WriteLine(d); }}------------------------------------------------ -----3. คอมไพล์และรันสำเร็จ
4. ต่อไป เราต้องลดระดับ .NET 3.5 เป็น .NET2.0 ขั้นแรก ให้เปลี่ยนแอสเซมบลีเป้าหมายของโครงการเป็น .NET2.0
จากนั้นคุณจะพบว่ามี dll หลายรายการใน Reference กลายเป็นเครื่องหมายอัศเจรีย์ ลบออกทั้งหมด จากนั้นเปลี่ยน dll ในโฟลเดอร์ LinqDlls
เพิ่ม Dll หลายตัวเพื่ออ้างอิง จากนั้นตั้งค่าสำเนาภายในเครื่องเป็น True และระบุเวอร์ชันเป็น False ในคุณสมบัติของ Dll เหล่านี้
5.คอมไพล์อีกครั้งก็จะสำเร็จ!
3. แล้วเรื่องอื่นๆล่ะ? กำลังพยายามใช้ LinqDataSet ภายใต้ .NET2.0 และฐานข้อมูลใช้ MySQL
1. รีสตาร์ท VS เพื่อให้ตัวเชื่อมต่อ MySQL ที่เพิ่งเพิ่มถูกโหลดโดย VS
2. เปิด Server Explorer คลิกขวาที่การเชื่อมต่อข้อมูล เพิ่มลิงก์ใหม่ และเปลี่ยนตัวเชื่อมต่อข้อมูล
เลือก MySql Connector ป้อนที่อยู่เซิร์ฟเวอร์ ชื่อผู้ใช้ และรหัสผ่านที่จำเป็นไปจนถึง NEXT และทดสอบว่าการเชื่อมต่อสำเร็จหรือไม่
3. เปลี่ยนชุดประกอบเป้าหมาย LinqMySql เป็น .NET3.5 คลิกขวาที่โครงการและเพิ่มชุดข้อมูลที่พิมพ์อย่างยิ่ง
เพิ่มตารางลูกค้าและคำสั่งซื้อภายใต้ฐานข้อมูลทดสอบ Mysql ใน Server Explorer ลงในชุดข้อมูล
4. เขียนโค้ดทดสอบในฟังก์ชันหลัก
-------------------------------------------------- -------------------------------------------------- ---
การใช้ (var dataSet = new DataSet1()){ var customerAdapter = new DataSet1TableAdapters.CustomersTableAdapter(); var orderAdapter = new DataSet1TableAdapters.OrdersTableAdapter(); query = จากคำสั่งซื้อใน dataSet.Orders โดยที่ order.OrderDate.Date > new DateTime(2010, 8, 1) เลือก new { order.OrderID, order.CustomerID }; foreach (คำสั่ง var ในแบบสอบถาม) { Console.WriteLine(order. รหัสลูกค้า); }}--------------------------------------- --- --------5. คอมไพล์และรันสำเร็จ!
6. เดี๋ยวก่อน ตอนนี้เหลือเพียง .NET3.5 จะเปลี่ยนไปใช้ .NET2.0 ได้อย่างไร
ลองเปลี่ยนแอสเซมบลีเป้าหมายเป็น .NET2.0 โดยตรง คอมไพล์และล้มเหลว!
7.TMD ตรวจสอบ DataSet1.designer.cs และพบโค้ดต่อไปนี้ภายใต้ .NET3.5
-------------------------------------------------- -------------------------------------------------- ---ลูกค้าคลาสบางส่วนสาธารณะDataTable : global::System.Data.TypedTableBase<customersRow>----------------------------------- --- -------------------------- ตอนนี้กลายเป็นแล้ว
-------------------------------------------------- -------------------------------------------------- ---
ลูกค้าคลาสสาธารณะบางส่วน DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable -------------------------------- -- --------------------------8.แล้ว? จะทำอย่างไร? รีเซ็ตแอสเซมบลีเป้าหมายเป็น .NET3.5 จากนั้นไปที่ไดเรกทอรี LinqMySql ไปที่
-------------------------------------------------- -------------------------------------------------- ---
DataSet1.Designer.cs
ชุดข้อมูล1.xsc
DataSet1.xsd
ชุดข้อมูล1.xss
-------------------------------------------------- -------------------------------------------------- ----
คัดลอกไฟล์บางไฟล์เพื่อทำการสำรองข้อมูล จากนั้นตั้งค่าแอสเซมบลีเป้าหมายเป็น .NET2.0 อีกครั้ง จากนั้น -
จากนั้นคัดลอกไฟล์ด้านบนที่คุณเพิ่งสำรองข้อมูลกลับไปยังไดเร็กทอรีโปรเจ็กต์ คอมไพล์และรันอีกครั้ง สำเร็จ!
9. ณ จุดนี้ เราใช้ LinqSQL และ LinqDataSet เพื่อใช้ MySql ภายใต้ .NET2.0 ได้สำเร็จ แต่
ฉันยังใช้ LinqEntity เพื่อใช้ MySql ภายใต้ .NET2.0 ไม่สำเร็จ มาพูดถึงเรื่องนี้กันทีหลัง