Table des matières

MySQL avec Mono

Linq-to-SQL

Plusieurs étapes sont nécessaires pour utiliser LINQ-to-SQL avec MySQL :

  1. Modifier le fichier 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" />
  2. Ensuite, il faut installer dans le GAC le DLL de MySQL Connector/NET avec la même version que spécifié dans le fichier sqlmetal.exe.config, dans ce cas-ci c'est 6.3.7.0. Il faut utiliser la commande
    $ sudo gacutil -i mysql.data.dll
  3. Avec 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;

Problèmes

Could not load type SecurityRulesAttribute

System.TypeLoadException: Could not load type 'System.Security.SecurityRulesAttribute' from assembly 'MySql.Data'

Il faut que le projet soit en .NET 4.01).