2016-05-11 13 views
0

私はWPFアプリケーションを持っており、デザイナーは多くのエラーメッセージを表示しますが、実際のプログラムは正常に動作します。デザイナーは設定ファイルを読むことができません

問題の核心は、コンフィグ

と、InvalidOperationExceptionに接続文字列を見つけるためにデザイナーのできないことのようだ: という名前の接続文字列を「HeliDataDBEntities」アプリケーションの設定ファイルで見つけることができます。それはデザイナーのWYSIWYG要素が迷惑です敗れ、実際のコードに影響を与える、とのコードのコンパイルが影響されないエラーの完全なエラーリストを持っていないものの

configが

<connectionStrings> 
     <add name="HeliDataDBEntities" connectionString="metadata=res://*/Database.csdl|res://*/Database.ssdl|res://*/Database.msl;provider=System.Data.SqlClient;provider connection string=...;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

が含まれています実際のエラーを見つけにくくなります。

デザイナーがこれを見つけることができない理由はありますか?

答えて

0

はい。構成ファイルは、アプリケーションの開始からの相対パスです。アプリケーションがデザイナーのためにどのようなものかを推測します - ビジュアルスタジオ。

ベストプラクティスを破ります。デザイナーは全くデータベースに接続してはならず、偽のデータを扱うべきではありません。

DesignerProperties.GetIsInDesignMode(これ)を経由して

チェック。

あなたがデザインモードにいるかどうかに関係なく、データベースにアクセスすることはできません。

+0

DesignerPropertiesクラスを認識できませんでしたが、デザイナーがデータベースに接続することを望んでいませんでしたが、デザイナーがインスタンス化できるデータベース接続を使用して作業モデルを構築する方法がわかりませんでしたデザイナーがオブジェクトの構造をチェックするためにオブジェクトを生成するときに、異なる動作に従うように指示することができます – MikeT

+0

はい、これは標準的な方法です。 Btw。、私はconfigファイルにDB接続を持つことを非常に悪い習慣と考えています - 私は自分のconfigsを常に自己管理されたファイルに持っています。どうして? app.configは、通常のユーザーは変更できないインストールディレクトリにあり、管理者は変更しないでください。そして、私は決してインストーラにdb設定文字列を埋め込みません;) – TomTom

+0

msはデフォルトでそれらを設定に埋め込みますが、私はデータベースを変更して再生成する必要があるかのように製品をリリースする準備が整うまで、 EFモデルのMSは、変更が元に戻ったり、物事が期待通りではないので、フィットを投げたりします – MikeT

関連する問題