次のことについて誰かの専門知識が必要です。
クライアントと .NET 1.1 WinForms アプリケーションの間で 30 奇数のテーブルを同期する必要があるクライアント用の Web 向けシステムを構築しています。私たちの正気を保つために私たちの間のやり取りを最小限に抑えるために、私は XML を使用することを提案しました。
SELECT *
FROM table1
FOR XML AUTO, XMLDATA
注意点は、ソース DB と宛先 DB の間で主キーを同じままにする必要があることです。XML をインポートする洗練された方法はありますか? データ同期が行われるたびに、テーブルとリレーションシップを削除して再作成する醜い SQL を書きたくありません。ADO.NET または Entity Framework 3 を介してデータベースに「ほら、これがあなたのデータです。現在持っているデータの代わりにそれを使用してください」と伝える方法はありますか?
エクスポートされた XML の例を次に示します。
<taxGroup>
<Schema name="Schema29" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="taxGroup" content="empty" model="closed">
<AttributeType name="taxGroupId" dt:type="i8"/>
<AttributeType name="regionId" dt:type="i8"/>
<AttributeType name="description" dt:type="string"/>
<AttributeType name="percentage" dt:type="number"/>
<AttributeType name="exportNumber" dt:type="string"/>
<attribute type="taxGroupId"/>
<attribute type="regionId"/>
<attribute type="description"/>
<attribute type="percentage"/>
<attribute type="exportNumber"/>
</ElementType>
</Schema>
<taxGroup xmlns="x-schema:#Schema29" taxGroupId="38000001" regionId="1482000001" description="VAT" percentage="0.1400" exportNumber=""/>
<taxGroup xmlns="x-schema:#Schema29" taxGroupId="38000002" regionId="1482000001" description="VAT2" percentage="0.1700" exportNumber=""/>
</taxGroup>
注: 2 つの DB は相互にアクセスできません。トランスポートは Secure HTTPRequest 経由です。
更新 2: Winforms アプリは SQL2000 を使用しているため、同期フレームワークの使用が不可能になっているようです...
更新 3: この方法で物事を行う必要があり、行き詰まっていることを前提として考えてみましょう。.NET アプリはさまざまなサード パーティのサイトにデプロイされ、それぞれが DB の個別のコピーを持ち、Web アプリケーションの個別のインスタンスに接続します。これは、すべての意図と目的のためのリセラー パッケージです: 実店舗コンポーネントとオンライン ストア コンポーネントです。一部のサード パーティは、SQL2000 からのアップグレードを拒否しています。