0

組み込みのアカウント コントローラー/モデル/ビューを使用して、標準の MVC 4 アプリケーションを作成しました。別のコントローラーを追加しようとしましたが、既存のユーザーとの外部キー関係を作成したいのですが、次のエラー メッセージが表示されます。

タイプ 'MVC4App.Models.ListingModel' のプロパティ 'CreatedBy' の ForeignKeyAttribute が無効です。依存型「MVC4App.Models.ListingModel」で外部キー名「UserId」が見つかりませんでした。Name 値は、外部キー プロパティ名のカンマ区切りのリストである必要があります。

リスティング モデル コードは次のとおりです。

システムを使用する; System.ComponentModel.DataAnnotations.Schema を使用します。

namespace MVC4App.Models
{
    public class ListingModel
    {
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string Location { get; set; }

        public string Instrument { get; set; }

        public string Genres { get; set; }

        public string Description { get; set; }

        [ForeignKey("UserId")]
        public virtual UserProfile CreatedBy { get; set; } 

        public DateTime CreatedOn { get; set; }
    }
}

ここで何が欠けていますか?または、これを行うべきより良い方法はありますか?

また、プロジェクトの後半で、メールアドレスやアバター画像へのリンクなど、ユーザープロファイルに追加のプロパティを追加できると思いますか?

4

1 に答える 1

4

UserId をエンティティに追加する必要があります。

namespace MVC4App.Models
{
    public class ListingModel
    {
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public string Location { get; set; }

        public string Instrument { get; set; }

        public string Genres { get; set; }

        public string Description { get; set; }

        public int UserId {get; set;}
        [ForeignKey("UserId")]
        public virtual UserProfile CreatedBy { get; set; } 

        public DateTime CreatedOn { get; set; }
    }
}
于 2013-01-03T14:09:29.723 に答える