[英]Foreign key is always 0 in relation one to one
在關系 1 - 1 中,我在每個表中都有兩個外鍵,它們應該告訴我我指的是什么對象。 在表“WebAppUser”中,外鍵工作正常,但在表“UserPermissions”中,我總是得到 0 作為外鍵的 ID(列:“WebAppUserId”,它是對特定“WebAppUser”的引用)。
我的代碼:
public class UserPermissions
{
[Key]
public int UserPermissionsId { get; set; }
//public int? WebAppUserId { get; set; }
public int WebAppUserId { get; set; }
public virtual WebAppUser WebAppUser { get; set; }
/*public virtual IEnumerable<WebAppUserClaims> Claims { get; set; }
public virtual IEnumerable<WebAppUserLogin> Logins { get; set; }
public virtual IEnumerable<WebAppUserToken> Tokens { get; set; }*/
public virtual IEnumerable<WebAppUserRole> WebAppUserRoles { get; set; }
}
public class WebAppUser /*: IdentityUser<int>*/
{
[Key]
public int Id { get; set; }
//1:1
public int UserProfileId { get; set; }
public virtual UserProfile UserProfile { get; set; }
//1:1
public int UserCredentialsId { get; set; }
public virtual UserCredential Credentials { get; set; }
//1:1
public int PermissionsId { get; set; }
public virtual UserPermissions UserPermissions { get; set; }
}
//WebAppUser - UserPermissions 1-1
modelBuilder.Entity<WebAppUser>()
.HasOne(x => x.UserPermissions)
.WithOne(y => y.WebAppUser)
.HasForeignKey<WebAppUser>(x => x.PermissionsId);
我試過這樣的實體配置,但它也不起作用:
modelBuilder.Entity<WebAppUser>()
.HasOne(x => x.UserPermissions)
.WithOne(y => y.WebAppUser)
.HasForeignKey<WebAppUser>(x => x.PermissionsId);
modelBuilder.Entity<UserPermissions>()
.HasOne(x => x.WebAppUser)
.WithOne(y => y.UserPermissions)
.HasForeignKey<UserPermissions>(x => x.WebAppUserId);```
在 fluentApi 中嘗試此更改
modelBuilder.Entity<WebAppUser>()
.HasOne<UserPermissions>(x => x.UserPermissions)
.WithOne(y => y.WebAppUser)
.HasForeignKey<UserPermissions>(x => x.WebAppUserId);
並且不要忘記當您向該表發出請求以使用 Include(x => x.UserPermissions)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.