私はwpfプロジェクト4.5を持っており、モデルクラスを生成するためにEF5を使用しています。生成されたEFクラスにiNotifyPropertyChangedを実装したいと思います。そこで、デザイナー(Visual Studio 2012)を右クリックして、コード生成設定を「なし」から「デフォルト」に変更しました。
それを行うと、次のような何百ものエラーが発生しました。
エラー67'パブリックプロパティ"TableColumnName" As "ColumnType"には、同一の署名を持つ複数の定義があります。
[編集1]
これらのエラーはすべてDataModel.Designer.Vbファイルでスローされます。これらは、別のテーブルのcolumn/navigationプロパティと同じ名前のテーブルcolumnプロパティまたはnavigationプロパティで発生します。同じ名前の異なるテーブルに列を含めることができないとは信じがたいです。ここで何か別のことが起こっているに違いありません。
[編集2]
そこで、すべてのデータベースオブジェクトをデザイナーから削除し、コード生成戦略をデフォルトに変更してから、1つのテーブル(クライアント)を図に追加しました。テーブルのすべてのプロパティで多くのエラーが発生します(したがって、他のテーブルの列名が以前に考えていたのと同じであるため、これが原因ではないはずです)。上記のすべてのプロパティ(テーブル列)でエラーが発生し、すべてのプロパティで次のエラーが発生します。
エラー変数'_ColumnName'は、クラス'client'のプロパティ'ColumnName'に対して暗黙的に宣言されたメンバーと競合します。C:... \ FTC_DAL.Designer.vb
これは、コード生成をnoneに戻すとなくなります。私はこれがEF5のバグだと思って見つめています。
[編集3]
再現する手順:
- Visual Studio 2012、wpfアプリケーションで新しいプロジェクトを作成します。
それはvbまたはcである可能性があります、私は両方をテストしました - ADO.NETエンティティデータモデル(edmxファイル)を追加します
- SQLサーバーからテーブルを追加します(Express 2008 R2を使用しています)
- プロジェクトをビルドし、空白のedmxデザイナーをクリックします。プロパティウィンドウで、コード生成戦略をnoneではなくdefaultに変更します。
- プロジェクトをビルドすると、エラーが表示されます。
使ってます:
- Visual Studio 2012Prov.11.0.51106.01アップデート1
- .NET 4.5.50709
- Windows8プロ
SQL Server 2012 Expressをインストールして、これが違いを生むかどうかを確認します
誰かがこれらのエラーが発生している理由を理解するのを手伝ってもらえますか?
ありがとう