0

このコードを実行しようとすると、エラーが発生します。

タイプ「AddressBook.DAL.Models.User」と「AddressBook.DAL.Models.User」の間の関連付けのプリンシパル エンドを特定できません。この関連付けのプリンシパル エンドは、リレーションシップ fluent API またはデータ アノテーションを使用して明示的に構成する必要があります。

目的は、すべてのテーブルに共通のフィールドを持つ baseClass を作成することです。

基本クラスを使用しない場合、すべて正常に動作します。

namespace AddressBook.DAL.Models
{
public class BaseTable
{
    [Required]
    public DateTime DateCreated { get; set; }
    [Required]
    public DateTime DateLastUpdatedOn { get; set; }

    [Required]
    public virtual int CreatedByUserId { get; set; }

    [ForeignKey("CreatedByUserId")]
    public virtual User CreatedByUser { get; set; }

    [Required]
    public virtual int UpdatedByUserId { get; set; }

    [ForeignKey("UpdatedByUserId")]
    public virtual User UpdatedByUser { get; set; }

    [Required]
    public RowStatus RowStatus { get; set; }

}

public enum RowStatus
{
    NewlyCreated,
    Modified,
    Deleted
}


}




namespace AddressBook.DAL.Models
{
public class User : BaseTable
{
    [Key]
    public int UserID { get; set; }
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string MiddleName { get; set; }
    public string Password { get; set; }

}

}
4

1 に答える 1