2017-06-07 4 views
1

私は既存のMS SQLデータベースを読み書きする必要があるC#アプリケーションを開発しています。データベースのオブジェクトクラスを使用することにしましたが、実行時にテーブルの列を変更する可能性があります。新しい列(null以外の新しい列の場合)を作成しようとすると例外が発生します。 データベースへのオブジェクトのアプローチを保持し、可変データベーステーブルを処理する方法はありますか?実行時にオブジェクトを更新する必要はなく、新しい列を処理するだけです。有効なデフォルト値を入力してください。変数スキームを持つデータベースへのオブジェクトのアプローチ

私のソリューションへの詳細: VS2015のデータソース設定ウィザードを使用して、データベース用のオブジェクトを生成し、すべてが問題ありません。テーブルに新しい列がある場合は、ウィザードを再度実行してオブジェクトを更新し、適切な新しい値を定義する必要があります。 データベース構造(既存のERPシステム)で何も変更できません。データベースは膨大で(数百のテーブルがあり、それぞれに約60+のカラムがあります)、データベースオブジェクトの生成方法を自動化する方法を探しています。

私はちょうど(初心者として)いくつかの明白な解決策を見逃したいと思う。 事前にお寄せいただきありがとうございます。

ペトル

答えて

0

私は、次の操作を行うことをお勧めします:

  • 必要な列にインポートテーブルのセットを作成し、それらのテーブルを残すには、インポートテーブルに、アプリケーションのコピーデータをしてみましょう
  • を固定
  • ストアドプロシージャを使用してインポートテーブルからデータベースの本番テーブルを更新する
+0

コメントをいただきありがとうございます。私はデータベース側では限られています。しかし、あなたの提案はもちろん、最良の選択肢です(データリンクの問題も克服しています)。あなたの経験によれば、私が直面している状況はあまり一般的ではないことを理解できますか? =私は利用できないものを探していますか? –

+0

私はこのようなシナリオに遭遇したことはありません。私の経験から、Microsoftデータアクセスソリューションは、テーブル内のメタデータの変更に関して非常に柔軟性がありません。 SSISでは、それを達成するために黒い魔法をしなければなりません。私はEFと同じであると思います。完全に不可能ではありませんが、間違いなく「不快です」。データベース内の何かを変更できない場合は、古典的なSqlConnection、SqlCommandなどでソリューションを実装することをお勧めします。 –

+0

経験を共有してくれてありがとう。 –