2

Quelles stratégies et techniques avez-vous utilisées pour produire une application pilotée par les données qui doit accéder à plusieurs sources de données diverses? Plus précisément, Microsoft Access et SQL Server. Idéalement, j'aimerais créer une couche d'abstraction qui cache la source de données physique de l'application. Quelque chose comme ADO.NET Entity Framework serait idéal, mais il n'a pas de fournisseur MS Access.Comment mon application peut-elle utiliser à la fois une base de données MS Access et une base de données SQL Server en même temps?

Existe-t-il un cadre ou une technique différent prenant en charge les connexions Access et SQL Server simultanées?

Combien de travail consisterait à créer un fournisseur d'accès pour Entity Framework?

Répondre

0

Pour autant que je sache, il n'y a que deux choix:

  1. chaînes de connexion multiples
  2. chaîne de connexion unique.

Dans le premier scénario, vous joignez toutes les données dont vous avez besoin à partir des sources disparates dans le code de niveau intermédiaire. Dans le second scénario, vous accédez à toutes les sources, sauf une indirectement via la source unique. Par exemple, vous récupéreriez des données à partir d'Access via un serveur lié dans SQL Server.

Ils ont chacun leurs avantages et leurs inconvénients. L'utilisation d'une chaîne de connexion unique est certainement plus simple à appliquer dans le niveau intermédiaire. En fin de compte, cela dépend du besoin de deux sources. Si l'on est simplement pour la journalisation par exemple, alors deux chaînes de connexion peuvent être plus simples. Si des jointures et autres sont nécessaires, l'utilisation d'un serveur lié peut être plus facile en fonction des sources. Si l'une des sources est Access et que vous n'utilisez pas la sécurité Access, l'utilisation d'un serveur lié peut fonctionner correctement en fonction de l'échelle. Si vous utilisez la sécurité Access et avez des connexions différentes qui doivent accéder à la base de données, l'utilisation d'un serveur lié sera pénible.

1

Je suis assez sûr que LLBLGen prend en charge l'accès (et, bien sûr, il prend en charge MS SQL). Cela coûte de l'argent, mais à mon humble avis c'est le meilleur OR/M pour .NET.

0

Regardez NHibernate. Il a des fournisseurs pour SQL Server et Access (et autres).

1

Une autre approche consiste à créer des serveurs liés dans SQL Server, à effectuer des jointures à l'aide de vues dans SQL Server et à masquer complètement le fait qu'il existe plusieurs sources de données dans votre application.