Par Thierry Thoua,
dimanche, septembre 23 2007.
Lien permanent
LINQ
Etant sur un nouveau projet associatif, je me suis tourné depuis quelques semaines dans la découverte et l'utilisation de DLINQ. D'entrée, j'ai été confronté à un problème que je juge de taille... En effet, DLinq ne supporte actuellement que SQL Server (et déclinaison Express) ainsi que Access (que je n'ai pas réussi à faire fonctionner ...). La question qui me vient directement à l'esprit ... Et les autres ??? On fait quoi ??? ... Heureusement qu'il existe un petit
projet en développement qui fournit un connecteur pour MySQL, Oracle et PostgreSQL. Et heureusement que je partais d'un existant nul .... ;-). J'espère que Mr Microsoft implémenera ces classes pour d'autres SGBD.
Je profite de ce post pour donner un petit conseil ;-). L'utilisation d'un DataContext permet de récuperer les données etc. Il est tout à fait possible de ne pas devoir récuperer a chaque fois l'objet Table
. En effet, il suffit d'implémenter une classe "custom" héritant de l'objet DataContext et ayant en champ public les différentes tables. La classe sera initialisée une fois pour toute si on garde une référénce au datacontext.
Voici un exemple:
Au lieu de :
[csharp]
Table blogs = dataContext.GetTable<Blog>();
Il est possible de faire :
[csharp]
public class DBManager : DataContext
{
public Table Blog;
public Table Post;
public DBManager(IDbConnection connection)
: base(connection)
{
}
}