gpt4 book ai didi

c# - 无法使用 EntityFramework 添加 FK

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:48 26 4
gpt4 key购买 nike

我在学习ASP.NET CoreEntity Framework我正在尝试添加 FK在我的 UserDetails table 。这些是模型:

public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }

public virtual UserDetails UserDetail { get; set; }
}

public class UserDetails
{
public string UserId { get; set; }
public string Biography { get; set; }
public string Country { get; set; }
public Uri FacebookLink { get; set; }
public Uri TwitterLink { get; set; }
public Uri SkypeLink { get; set; }

public virtual User UserKey { get; set; }
}

表格UserMaster包含我的应用程序中所有注册用户的表(我使用的是 AspNetCore.Identity)。

实际我想添加为FK属性(property)UserId必须绑定(bind) IdUser .所以里面 ApplicationContext我在类里面做了以下事情:

public class DemoAppContext : IdentityDbContext<ApplicationUser>
{
public DemoAppContext(DbContextOptions<DemoAppContext> options) : base(options)
{
}

protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<UserDetails>(entity =>
{
entity.Property(e => e.Biography).HasMaxLength(150);

entity.Property(e => e.Country).HasMaxLength(10);

entity.HasOne(d => d.UserKey)
.WithOne(p => p.UserDetail)
.HasForeignKey(d => d.???; <- problem here
});
}

public DbSet<User> Users { get; set; }
public DbSet<UserDetails> UserDetails { get; set; }
}

我覆盖了 OnModelCreating并使用 ModelBuilder我为 UserDetails 定义表MaxLength的一些属性。在 builder.Entity<UserDetails> 的最后一行我试图分配 FKHasOne => UserKey 建立关系其中包含对象 User .关系是1 to 1所以我用了WithOne并分配了 UserDetail其中包含 UserDetails目的。

最后我用了HasForeignKey但是当我输入 d.编译器不显示任何属性。

我做错了什么?也许我把事情复杂化了?

对于任何错误,我们深表歉意,并提前感谢您的任何解释。

最佳答案

以下代码将起作用:

builder.Entity<UserDetails>(entity =>
{
entity.Property(e => e.Biography).HasMaxLength(150);
entity.Property(e => e.Country).HasMaxLength(10);

entity.HasOne(d => d.UserKey)
.WithOne(p => p.UserDetail)
.HasForeignKey<UserDetails>(x => x.UserId); //???; < -problem here
});

enter image description here

关于c# - 无法使用 EntityFramework 添加 FK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52310518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com