0

Excelfiles からデータベースへのインポートを作成する必要があります。Excelfile をある種の「Excel エンティティ」にマップする小さなシステムを作成しました。これらのエンティティの一部には、複数のデータベース テーブルの情報が含まれており、他のエンティティについては、データベース内の ID などを計算する必要があります。データベースをオブジェクトにマップするためにエンティティ フレームワークを使用しています。

今私の問題は、Excelfile 構造とデータベース構造の間をマッピングするためのクリーンなアプローチが必要だということです。

この問題をクリーンな方法で解決するパターンはありますか? すべての属性が変更されたかどうかを確認する必要はありません... データベースを Excel ファイルと同期するだけで済みます。しかし、excefile は私のデータベース スキーマとまったく同じではありません。

誰かが問題を解決するためのパターンまたはアプローチを知っていれば、とてもいいでしょう。

4

1 に答える 1

1

実際には解決すべき2つの問題があるように見えます.1)Excelファイルから情報を取得して適切なスキーマにします。2) データベースを同期します。エンティティ フレームワークを検討している場合、#2 は十分に管理されているようです。1 番目の問題を解決するには、2 番目のソリューションで作成されたエンティティを入力できるパーサーを作成する必要があります。

TL;DR: ファイルの解析を同期から分離します。最初にすべてのオブジェクトを取得してから、データベースを更新します。

編集: 次にマッパーを作成する必要があります。プロパティ名で 2 つのオブジェクトをリンクできるもの。「リフレクション」「拡張メソッド」、およびマッパーのより一般的な検索を見てください。次のように機能するものを作成します。

object1.Map("Property1",object2,"Property2");

object1 はデータベース エンティティ、Property1 はマップ先のプロパティの名前、object2 は Excel エンティティ、Property2 はマップ元のプロパティの名前です。

PS: 拡張メソッドが正しく行われている場合は、マッピングを「連鎖」できます。object1.Map("Property1", object2, "Property2").Map("Property3", object3, "Property4")

等々。マップする別のオブジェクトを選択することもできます。

于 2013-08-16T12:49:13.740 に答える