MVC4 と Entity Framework 4 を使用して Visual Studio 2012 を使用して Web サイトを構築しています。すべてのモデル クラスを作成し、すべての属性を (それらの間にいくつかの関係を使用して) 作成しました。これまでのところ、私のクラスには一連の属性しかありません (メソッドはまだありません)。
しかし、コレクションを含むクラスのコントローラーを作成しようとすると、 「モデル名」のメタデータを取得できませんというエラーが発生します。値を null にすることはできません。パラメータ名: key.
私はそれをグーグルで検索し、さまざまな解決策を見つけましたが、どれも機能しませんでした: すべての主キー属性の名前を「Id」に変更しようとしました (それらにはすべて [Key] の注釈が付けられています)、データのコンストラクターをコメントアウトしようとしましたコンテキスト クラス、接続の名前が DefaultConnection であることを確認しました...
これは、コントローラーを作成できないクラスの 1 つです。
public class JobOffer
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int JobOfferId { get; set; }
public Company Company { get; set; }
public OfferState State { get; set; }
public virtual ICollection<OfferApplicant> Applicants { get; set; }
public virtual ICollection<Requirement> Requirements { get; set; }
}
( [DatabaseGeneratedAttribute] アノテーションなしで既に試しましたが、役に立ちませんでした)
OfferState クラスは、Open と Closed の 2 つのサブクラスを持つ抽象クラスです (State パターンを実装するために存在します)。
OfferApplicant クラスは、1 つの JobOffer を 1 つの Applicant にマップします。これは多対多の関係であるため、新しいテーブルを作成しました。
Requirement クラスは、Age、Education、Area などのいくつかのサブクラスを持つ抽象クラスでもあり、パブリック仮想 ICollection Requirements { get;を持つ CompositeRequirement もあります。設定; }コレクション (複合パターンです)。
クラスにはまだメソッドすらありません。クラスにあるのはプロパティだけです。
手がかりはありますか?
ありがとう!!