Linq'in Ubuntu'da Mysql ile çalışmasını, depolarda Mono versiyonunu (2.10.5) kullanmayı denedim ve baş ağrısından başka bir şey elde edemiyorum.Mysql ve Mono'yla güzel oynamak için Linq'i elde etmek mümkün mü?
Her şeyden önce, varsayılan olarak eski ve kullanım dışı bir sürüme ayarlandığından, MySQL sağlayıcısı sqlmetal.exe.config dosyasını değiştirmek zorunda kaldım, bu makineye yüklediğim MySQL bağlayıcısını ayarlama işini başarmayı başardım (depolardan) sqlmetal için sağlayıcı olarak. DataContext'i hedef veritabanım için sqlmetal ile oluşturdum ve işe yaramış gibi görünüyordu, ama tamamen emin değilim.
DataContext'i oluşturduktan sonra, bunu test etmek için monodevelop üzerinde yeni bir proje oluşturdum, ilk önce basit bir MysqlConenction kullanmayı denedim ve konektörün düzgün çalıştığını kontrol ettim, konektör aksamını projeye eklemeliydim, ancak bu iyi , işe yaradı. Sonra bu kodu kullanarak DataContext'i kullanarak bağlanmaya çalıştı:
using System;
using System.Linq;
using System.Data.Linq;
using MySql.Data.MySqlClient;
namespace test
{
public class test
{
public static void Main (String[] args)
{
Test db = new Test (new MySqlConnection("Userid=root;database=test;server=localhost;password=password"));
foreach(var tr in db.Users)
{
Console.Write(tr.Username);
}
}
}
}
Bu kod başarısız olur. Bu Linq, MySQL için atıyor en azından istisna kötü bir SQL kodu oluşturmaktır görünüyor söylemek görünüyor:
Unhandled Exception: MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Id], [Password], [Username]
FROM [test].[Users]' at line 1
at MySql.Data.MySqlClient.MySqlStream.ReadPacket() [0x00000] in <filename unknown>:0
at MySql.Data.MySqlClient.NativeDriver.GetResult (System.Int32& affectedRow, System.Int32& insertedId) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Id], [Password], [Username]
FROM [test].[Users]' at line 1
at MySql.Data.MySqlClient.MySqlStream.ReadPacket() [0x00000] in <filename unknown>:0
at MySql.Data.MySqlClient.NativeDriver.GetResult (System.Int32& affectedRow, System.Int32& insertedId) [0x00000] in <filename unknown>:0
kimse o MySQL kullanarak Linq ve Mono bağlanmak mümkün olup olmadığını biliyor mu? Kaybettiğim bir şey mi var?
Teşekkürler!
Bu soru zaten burada http://stackoverflow.com/questions/42212/how-can-i-use-linq-with-a-mysql-database-on-mono – Eugene
tartışıldı Bu soruya okumak , ama bu 3 yıllık bir soru ve ben şeylerin değişmiş olacağını düşündüm ... – uorbe001