簡體   English   中英

實體框架代碼優先:使用注釋的一對一關聯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM