1. Подготовительные работы, нам нужно кое-что установить и кое-что скопировать.
0. Откройте VS2008 или VS2010, создайте новый проект инженерной консоли LinqMySQL, а целевой сборкой будет .NET 3.5.
1. Загрузите и установите MySQL до версии NEXT.
2. Загрузите и установите MySQLWorkBench до версии NEXT, откройте его и создайте тестовую базу данных, таблицы «Клиенты» и «Заказы».
-------------------------------------------------- ---
создать таблицу Клиенты
(
CustomerID varchar(50) не нулевой ключ PRimary,
Имя контракта varchar(50) не равно нулю,
Телефон varchar(50) не равен нулю,
Городской varchar(50) не равен нулю,
Страна 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, компакт-диск в каталоге DbLinq и используйте DbMetal.exe для создания контекста данных MySQL. Команда выглядит следующим образом:
-------------------------------------------------- ---
DbMetal.exe
-provider=MySql
-база данных:MyDatebase
-сервер: локальный хост
-пользователь:mysqluser
-passWord:вашпароль
-пространство имен: LinqMySql
-код: TestDataContext.cs
-sprocs
-------------------------------------------------- ---
Вырежьте созданный файл TestDataContext.cs в корневой каталог проекта LinqMySql и добавьте его в проект LinqMySql.
2. Добавьте следующий код в функцию Main.
-------------------------------------------------- ---
строка 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 select customer.ContractName; foreach (var d in data) { Console.WriteLine(d); }}------------------------------------------------ -----3. Скомпилируйте и запустите. Успешно.
4. Далее нам нужно деградировать .NET 3.5 до .NET2.0. Сначала измените целевую сборку проекта на .NET2.0.
Затем вы обнаружите, что несколько dll в Справочнике стали восклицательными знаками, удалите их все, а затем измените библиотеки в папке LinqDlls.
Добавьте несколько Dll в Referece, а затем установите для копии локальной значение True и укажите версию False в свойствах этих DLL.
5. Скомпилируйте еще раз и все пройдет успешно!
3. А как насчет других историй? Попытка использовать LinqDataSet под .NET2.0, а база данных использует MySQL.
1. Перезапустите VS, чтобы только что добавленный соединитель MySQL был загружен VS.
2. Откройте обозреватель серверов, щелкните правой кнопкой мыши «Подключение к данным», добавьте новую ссылку и измените соединитель данных.
Выберите MySql Connector, введите необходимый адрес сервера, имя пользователя и пароль до NEXT и проверьте, успешно ли установлено соединение.
3. Измените целевую сборку LinqMySql на .NET3.5, щелкните проект правой кнопкой мыши и добавьте строго типизированный набор данных.
Добавьте таблицы «Клиенты» и «Заказы» в тестовой базе данных Mysql в обозревателе серверов в набор данных.
4. Напишите тестовый код в основной функции.
-------------------------------------------------- ---
использование (var dataSet = new DataSet1()) {вар customerAdapter = новый DataSet1TableAdapters.CustomersTableAdapter(); вар orderAdapter = новый DataSet1TableAdapters.OrdersTableAdapter(); customerAdapter.Fill(dataSet.Customers); orderAdapter.Fill(dataSet.Orders); запрос = из заказа в dataSet.Orders, где order.OrderDate.Date > new DateTime(2010, 8, 1) select new { order.OrderID, order.CustomerID }; foreach (var order в запросе) { Console.WriteLine(order. ID клиента); }}--------------------------------------------- --- --------5. Скомпилируйте и запустите, успехов!
6. Подождите, сейчас только .NET3.5, как перейти на .NET2.0?
Попробуйте напрямую изменить целевую сборку на .NET2.0, скомпилировать и получить ошибку!
7.TMD проверил DataSet1.designer.cs и обнаружил следующий код в .NET3.5.
-------------------------------------------------- ---public частичный класс customerDataTable : global::System.Data.TypedTableBase<customersRow>------------------------------- --- -------------------------- Теперь стало
-------------------------------------------------- ---
открытый частичный класс customerDataTable : 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. Давайте поговорим об этом позже.