1

データベースに 2 つのテーブル (カテゴリと部門) があり、どちらにも同じ列 (ID、名前、コード) が含まれています。

Visual Studio 2008 デザイナーを使用して新しいエンティティ モデルを作成し、Department を追加すると、問題なく動作します。LINQ を使用してデータベースにクエリを実行できます。

モデルを更新してカテゴリ テーブルを追加すると、生成されたコードをコンパイルしようとすると、次のエラーがスローされます。

The type 'DBContexts.Category' already contains a definition for 'ID'
The type 'DBContexts.Category' already contains a definition for '_ID'

The type 'DBContexts.Category' already contains a definition for 'Name'
The type 'DBContexts.Category' already contains a definition for '_Name'

A partial method may not have multiple defining declarations

これは、Department と Category の列名が同じであることと関係があると思いますが、Code 列に問題があるとは思えません。

これを修正する方法はありますか?モデルを更新すると変更が削除されるため、生成されたコードをいじることはできません。

乾杯

4

1 に答える 1

8

.dbml ファイルを更新すると、.designer.cs ファイルも再生成されますが、このファイルにアクセスできない場合は、新しいファイルが生成され、プロジェクトに追加されます。両方のファイルのクラスは部分的ですが、コンパイル時に同じプロパティとフィールドを持つため、このエラーが発生します。

コンテキストに対してデザイナーが生成したファイルが 1 つしかないかどうかを確認できます。クラスの名前を右クリックして「定義に移動」を選択すると、クラスの定義を含むすべてのファイルが表示されます。

于 2010-01-27T11:20:50.317 に答える