我試圖運行此代碼時出現錯誤。
EF 5代碼第一次在類中使用繼承
無法確定 類型「AddressBook.DAL.Models.User」和「AddressBook.DAL.Models.User」之間的關聯的主要端。 必須使用關係流暢API或數據註釋,明確配置此關聯的主要目的地 。
目標是我創建了所有表的commonfield的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; }
}
}
我已經在EF4中完成了這一點,並且與您的代碼唯一的區別是我沒有將int關鍵字放在int關鍵字屬性上。也許試着用'public int CreatedByUserId {get; set;}'和'public int UpdatedByUserId {get; set;}'?? –
我不知道我是否唯一,但我不明白你的錯誤。 'AddressBook.DAL.Models.User和AddressBook.DAL.Models.User'(Same Models?)。另外,你提到了使用'Inheritence',但是在代碼中沒有這樣的標記。 – Komengem
@Komenge Mwandila從用戶到用戶有一個'1..1'的關係,因爲用戶可以由其他用戶或他自己修改/創建。 此外,你可以看到,用戶繼承BaseTable'公共類用戶:BaseTable {...' –