[英]Entity Framework Code First : One-To-One association using Annotations
我正在使用.NET MVC 5和Identity ...我正在嘗試將我的Member類與MemberInfo類建立一對一的關系。因此,我的類如下所示:
IdentityUser位於Microsoft.AspNet.Identity.EntityFramework命名空間中,其字符串ID為ID。
public class GRNUser : IdentityUser {
....
....
}
public class MemberUser : GRNUser {
public virtual Member MemberInfo {get; set; }
}
public class Member {
public int ID {get; set; }
public string MemberUserID {get; set; }
public virtual MemberUser MemberUser { get; set; }
}
就我而言,我有這個
modelBuilder.Entity<Member>().HasRequired(m => m.MemberUser)
.WithOptional(u => u.MemberInfo);
因此,MemberUser和Member應該能夠使用MemberUser的ID屬性和Member的MemberUserID屬性相互導航。
但是,在創建數據庫時,它具有附加列“ MemberUser_Id”,而不使用我指定的MemberUserID。 如何使用我指定的“ MemberUserID”?
我試過使用ForiegnKey數據注釋的幾種組合,但一直出現此錯誤:Member_MemberUser_Source::多重性在關系'Member_MemberUser'中的角色'Member_MemberUser_Source'中無效。 因為從屬角色屬性不是關鍵屬性,所以從屬角色多重性的上限必須為'*'。
我不知道我是否正確理解你,但我會盡力幫助。 (我假設您先進行代碼遷移)
如果要建立一對一關系,為什么不嘗試為您的信息創建一個獨立的實體,該實體將具有用戶實體的外鍵,並且該外鍵將被標注為實體的主鍵?
另一種方式是為什么不將所需的任何屬性添加到“應用程序用戶”實體並使用它呢?
無論如何,我可能會誤解了您的目的,因此,請隨意解釋,因為您的帖子有些混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.