0

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 もあります。設定; }コレクション (複合パターンです)。

クラスにはまだメソッドすらありません。クラスにあるのはプロパティだけです。

手がかりはありますか?

ありがとう!!

4

0 に答える 0