私は次の方法であなたの要件を達成します:
まず、dbmlデータベースごとに 1 つずつ、多数の (Linq2SQL) ファイルを追加します。必要に応じて、ADO.NET などを使用できます。生成されたデータ オブジェクトを別の方法で呼び出す必要があります... MySqlDataObject、OracleDataObject、FirebirdDataObject などのようなものです。
UI では、1 セットのデータ オブジェクトのみが必要です。したがって、データ層では、さまざまなデータベースから各データ オブジェクトを埋めるメソッドが必要になります... CopyToMySqlDataObject(ClrDataObject clrDataObject)、CopyToOracleDataObject(ClrDataObject clrDataObject)、CopyToFirebirdDataObject(ClrDataObject clrDataObject).
最後に、DataProviderすべてのデータ ソース オブジェクトを参照するクラスを使用します。このクラスは、利用可能な各アクションをホストし、各メソッドですべてのデータ ソースを呼び出します。次の例を見てください。
public int UpdateDataObject(ClrDataObject clrDataObject)
{
using (MySqlDataContext dataContext = new MySqlDataContext())
{
MySqlDataObject mySqlDataObject = dataContext.MySqlDataObjects.Where(d =>
d.Id == clrDataObject.Id).FirstOrDefault();
CopyToMySqlDataObject(clrDataObject, mySqlDataObject);
dataContext.SubmitChanges(ConflictMode.FailOnFirstConflict);
return 0;
}
...
using (OracleDataContext dataContext = new OracleDataContext())
{
OracleDataObject oracleDataObject = dataContext.OracleDataObjects.Where(d =>
d.Id == clrDataObject.Id).FirstOrDefault();
CopyToOracleDataObject(clrDataObject, oracleDataObject);
dataContext.SubmitChanges(ConflictMode.FailOnFirstConflict);
return 0;
}
}