私は数日間このことを戦ってきたと言いたいと思っていましたが、この問題に多かれ少なかれ答えの多くを試しました。しかし、私はそれを解決することができませんでした。EFナビゲーションのプロパティとマッピングに関する問題
DBにテーブルを表す2つのクラスがあります。これらはレガシーアプリケーションで使用される既存のテーブルであり、変更することはできません。
メッセージに複数のMessageRecipientsを含めることができます。
環境:MVC3、EF4.1
クラスは以下のとおりです。
public class Message
{
[ForeignKey("MessageReciepients")]
public virtual int MessageID { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime Recieved { get; set; }
[ForeignKey("User")]
public int AuthorUserID { get; set; }
//P\\ Navigation properties
public virtual IList<MessageRecipient> MessageReciepients { get; set; }
public virtual User User { get; set; }
}
public class MessageRecipient
{
//[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int MessageID { get; set; }
public int UserID { get; set; }
public bool Read { get; set; }
public bool Important { get; set; }
public bool Deleted { get; set; }
public bool Destroyed { get; set; }
//P\\ Navigation Properties
public virtual User User { get; set; }
}
私が持っているエラーは次のとおりです。
外部キーコンポーネントのメッセージID」に関する宣言されたプロパティではありませんタイプ 'MessageRecipient' 明示的に がモデルから除外されておらず、有効なプリミティブプロパティであることを確認してください。
メッセージの受信者を読み込むためにこれらのクラス、リレーションシップを正しくマップするにはどうすればよいですか?
ナビゲーションプロパティUserがメッセージに対して正しく機能し、ユーザーのデータを正しく読み込むことを追加できます。
私はあまり.NETに慣れていないので、これをやっている間に学びます。 私は、これらをマップするためにいくつかのEF API設定を試しました。私はそれを誓い、呪いをかけ、同時に泣き叫んで祈っていました。いいえ、喜び!
本当に助けていただければ幸いです。不足しているプロパティで
彼らに後方 –
を得た:)ここ – Pawel
の詳細情報をhttp://stackoverflow.com/queあなたが 'MessageRecipientの内部に' Message'クラスの参照を置くときに、エンティティオブジェクト間の標準的な関係が必要な場合は、stt/5542864/how-should-i-declare-foreign-key-relationships-using-code-first-entity-framework –