3

わかりました。コースと業界の2つのエンティティがあります。

コースおよび業界エンティティ

業界エンティティは、コースにタグ付けして分類できるすべての利用可能な業界を一覧表示する単なる参照テーブルです。私は多対ゼロまたは1つの関係を設定します(コースは業界を持つかどうかを選択できますが、業界は多くのコースでタグ付けできます)。

過去に関連付けを追加および削除して、図を少し試したことがあることを知っています。

ここに奇妙な部分があります。Courseの列マッピングには、IndustryIdとIndustry_Idの2つの類似した列があります。

奇数コースの列マッピング

過去の協会からだと思いますが、EFが面倒を見てくれたのではないかと思いました。

ここに問題があります:

コースを作成する私の見解では、IndustryIdは入力する必要のあるプロパティです。新しいコースを作成すると、データベースにIndustryIdが入力されているのがわかります。

ただし、Course(Course.Industry.Description)を介してIndustryのプロパティにアクセスすると、何も入力されません。業界の実体を取得することはできないようです。

データベースにIndustryIdが入力されているので、Industry_Id列に入力しようとしました。それはそれを修正しました。

奇妙なことに、モデルで宣言されたプロパティはIndustryIdであるため、列はデータベースに入力されます。しかし、Courseを通じてIndustryエンティティを取得しようとすると、Industry_Idが必要になります。これは、どこから来たのかよくわかりません。

誰かアイデアはありますか?

4

1 に答える 1

2

データベースからの更新で、テーブルの列名をからに変更したIndustry_IdようIndustryIdです。次にデータベースから更新したときに、EF5(名前が一致しているため、これが同じ列であるかどうかを判別できません)は、のマッピングを削除し、 。Industry_Idという新しい列を追加しましたIndustryId

ただし、列に基づいてEDMXファイルに外部キーマッピングをすでに作成しているIndustry_Idため、関連するレコードをロードするときに外部キーマッピングが必要になるという問題が発生します。

一般に、データベースを使用する場合-まず、データベースの列の名前を変更するたびに、EF5モデルを更新し、そのような不一致を更新/修正する必要があります。

于 2013-03-27T20:00:18.713 に答える