Plusieurs étapes sont nécessaires pour utiliser LINQ-to-SQL avec MySQL :
sqlmetal.exe.config
pour remplacer la ligne du provider name=MySQL
avec cette ligne :<provider name="MySQL" dbLinqSchemaLoader="DbLinq.MySql.MySqlSchemaLoader, System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" databaseConnection="MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
sqlmetal.exe.config
, dans ce cas-ci c'est 6.3.7.0. Il faut utiliser la commande $ sudo gacutil -i mysql.data.dll
sqlmtal.exe
on peut générer le code pour les entités :$ sqlmetal --provider=MySQL --server=localhost:8889 --user=[user] --password=[password] --database=[dbname] --namespace=[namespace] --code=file.cs
Le fichier sqlmetal.exe.config
se trouve dans un répertoire ressemblant à
/Library/Frameworks/Mono.framework/Versions/2.10.8/lib/mono/4.0
Le GAC se trouve dans un répertoire ressemblant à
/Library/Frameworks/Mono.framework/Versions/2.10.8/lib/mono/gac
Une chaine de connexion pour MySQL ressemble à ceci :
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
System.TypeLoadException: Could not load type 'System.Security.SecurityRulesAttribute' from assembly 'MySql.Data'
Il faut que le projet soit en .NET 4.01).