Подключение к SQL Server, Oracle, DB2 и MySQL одновременно с использованием ADO.NET? - PullRequest
0 голосов
/ 21 января 2011

Я относительно новичок в .NET, но я пытаюсь определить, возможно ли, чтобы одно приложение .NET 4 одновременно подключалось к базам данных нескольких поставщиков (SQL Server, Oracle, DB2 и MySQL) с использованием ADO.NET ивыполнять запросы одновременно?

Все примеры, которые я нашел, говорят о подключении только к одной базе данных за раз.Спасибо!

Ответы [ 3 ]

1 голос
/ 21 января 2011

Вам просто нужно 4 строки подключения и 4 отдельных объекта подключения ADO.И затем то, что SLaks сказал об асинхронных запросах, чтобы выполнять их одновременно, если вы действительно хотите, чтобы они выполнялись параллельно.

0 голосов
/ 26 января 2011

Платформа ADO.NET определяет абстрактный набор классов 'DbXXX', таких как DbConnection , DbCommand и т. Д., Которые реализуются различными поставщиками баз данных, такими как

  1. System.Data.SqlClient.SqlConnection 'в System.Data.dll для Sql Server
  2. «Oracle.DataAccess.Client.OracleConnection» в Oracle.DataAccess.dll (поставщик ODP.NET) для Oracle
  3. 'MySql.Data.MySqlClient.MySqlConnection' в MySql.Data.dll для MySql и т. Д.

    Затем вам нужно спроектировать ваше приложение для абстрактного набора классов и использовать соответствующие реализации там, где это требуется. Большинство запросов должны работать со всеми бэкэндами, но, очевидно, будут специфические для бэкенда настройки, не говоря уже о вызовах хранимых процедур.

В качестве альтернативы вы можете использовать ORM (Entity Framework, Telerik OpenAccess ORM, NHibernate и т. Д.) И абстрагировать большую часть этих различий в ORM. Хотя я не уверен, что вы можете использовать одну модель сущности (в EF) для нескольких бэкэндов.

0 голосов
/ 21 января 2011

Вы можете выполнить два запроса так же, как вы выполняете один запрос.

Если вы хотите, чтобы они выполняли два запроса одновременно, вам нужно будет выполнять асинхронные запросы или использовать потоки.

...