1. العمل التحضيري، نحتاج إلى تثبيت بعض الأشياء ونسخ بعض الأشياء.
0. افتح VS2008 أو VS2010، وأنشئ مشروع وحدة التحكم الهندسية الجديد LinqMySQL، والتجميع الهدف هو .NET 3.5
1. قم بتنزيل MySQL وتثبيته وصولاً إلى التالي
2. قم بتنزيل MySQLWorkBench وتثبيته وصولاً إلى التالي، وفتحه، وإنشاء قاعدة بيانات اختبارية، وجداول العملاء والطلبات.
-------------------------------------------------- ---
إنشاء جدول العملاء
(
varchar(50) معرف العميل ليس مفتاحًا أساسيًا فارغًا،
اسم العقد varchar(50) ليس فارغًا،
هاتف varchar(50) ليس فارغًا،
مدينة varchar(50) ليست فارغة،
البلد varchar(50) ليس فارغًا
)
إنشاء أوامر الجدول
(
معرف الطلب ليس مفتاحًا أساسيًا فارغًا،
تاريخ الطلب، التاريخ، الوقت،
varchar(50) معرف العميل ليس فارغًا،
يشير المفتاح الخارجي (معرف العميل) إلى العملاء (معرف العميل)
)
-------------------------------------------------- ---
3. قم بتنزيل MySQL .NET Connector 6.3.2 وتثبيته بعد ذلك
4. قم بتنزيل DbLinq وفك ضغطه، ثم قم بتعيين المسار إلى متغير بيئة النظام
5. قم بإنشاء مجلد LinqDlls جديد في دليل LinqMySql
افتح المجلد C:Program FilesReference AssembliesMicrosoftFrameworkv3.5
انسخ ملفات Dlls التالية إلى مجلد 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، القرص المضغوط إلى دليل DbLinq واستخدم DbMetal.exe لإنشاء MySQL DataContext الأمر كما يلي:
-------------------------------------------------- ---
dbMetal.exe
-provider=MySql
- قاعدة البيانات: MyDatebase
-الخادم: المضيف المحلي
-المستخدم:mysqluser
-كلمة المرور: كلمة المرور الخاصة بك
-مساحة الاسم: LinqMySql
- الكود: TestDataContext.cs
-سبروكس
-------------------------------------------------- ---
قم بقص ملف TestDataContext.cs الذي تم إنشاؤه إلى الدليل الجذر لمشروع LinqMySql وإضافته إلى مشروع LinqMySql
2. أضف الكود التالي في الوظيفة الرئيسية
-------------------------------------------------- ---
string connStr = @"server=localhost;database=test;user=mysqluser;pwd=yourpassword;";
باستخدام (var conn = new MySqlConnection(connStr)){ var t = new Test(conn); var data = from customer in t.Customers حدد customer.ContractName; }}------------------------------------------------ -----3.
4. بعد ذلك نحتاج إلى تحويل .NET 3.5 إلى .NET2.0 أولاً، قم بتغيير التجميع المستهدف للمشروع إلى .NET2.0.
ستجد بعد ذلك أن العديد من ملفات dll الموجودة في المرجع أصبحت علامات تعجب، قم بحذفها كلها، ثم قم بتغيير ملفات dll الموجودة في مجلد LinqDlls
قم بإضافة العديد من ملفات Dlls إلى Referece، ثم قم بتعيين النسخة المحلية إلى True وحدد الإصدار إلى False في خصائص ملفات Dll هذه.
5. قم بالتجميع مرة أخرى وسيكون ناجحًا!
3. وماذا عن القصص الأخرى؟ محاولة استخدام LinqDataSet ضمن .NET2.0 وقاعدة البيانات تستخدم MySQL
1. أعد تشغيل VS بحيث يتم تحميل موصل MySQL الذي تمت إضافته للتو بواسطة VS.
2. افتح Server Explorer، وانقر بزر الماوس الأيمن فوق Data Connection، وأضف رابطًا جديدًا، وقم بتغيير موصل البيانات
حدد MySql Connector، وأدخل عنوان الخادم الضروري واسم المستخدم وكلمة المرور وصولاً إلى التالي، واختبر ما إذا كان الاتصال ناجحًا.
3. قم بتغيير التجميع المستهدف LinqMySql إلى .NET3.5، ثم انقر بزر الماوس الأيمن فوق المشروع وأضف DataSet مكتوبة بقوة.
أضف جداول العملاء والطلبات ضمن قاعدة بيانات اختبار Mysql في Server Explorer إلى DataSet.
4. اكتب رمز الاختبار في الوظيفة الرئيسية
-------------------------------------------------- ---
باستخدام (var dataSet = new DataSet1()){ var customerAdapter = new DataSet1TableAdapters.CustomersTableAdapter(); var orderAdapter = new DataSet1TableAdapters.OrdersTableAdapter(); query = from order in dataSet.Orders حيث order.OrderDate.Date > new DateTime(2010, 8, 1) حدد new { order.OrderID, order.CustomerID }; معرف العميل }}-------------------------------------------- --- -------- 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
DataSet1.xsc
DataSet1.xsd
DataSet1.xss
-------------------------------------------------- ----
انسخ بعض الملفات لعمل نسخة احتياطية، ثم قم بتعيين التجميع الهدف على .NET2.0 مرة أخرى، وبعد ذلك. .
ثم انسخ الملفات المذكورة أعلاه التي قمت بنسخها احتياطيًا للتو مرة أخرى إلى دليل المشروع، ثم قم بتجميعها وتشغيلها مرة أخرى، نجح!
9. في هذه المرحلة، نجحنا في استخدام LinqSQL وLinqDataSet لاستخدام MySql ضمن .NET2.0، ولكن
لم أستخدم LinqEntity بنجاح لاستخدام MySql ضمن .NET2.0. دعونا نتحدث عن ذلك لاحقا.