[英]Invalid Column name generated by EFCore on a one-to-one relationship
我试图在我的上下文类中设置一对一的外键关系,但我不断收到以下错误。 我发现了一个类似的帖子,但这似乎并没有解决我的问题,因为我在模型中明确指定了关系。 我确认:
我试图通过在 ServerList.ServerName 列中添加注释ForeignKey("ServerId")
来解决这个问题,但这没有用。 为什么 EFCore 尝试创建此列? 为什么 ForeignKey 注释没有解决这个问题?
无效的列名“ServerListServerName”。
我的上下文类:
modelBuilder.Entity<Server>(entity =>
{
entity.HasOne(d => d.ServerList)
.WithOne(p => p.AwsServer)
.HasForeignKey<Server>(d => d.ServerName);
});
服务器.cs:
public partial class Server
{
[Key]
public int ServerId { get; set; }
public string ServerName { get; set; }
public virtual ICollection<PockAdvCompany> Companies { get; set; }
public virtual ParentServer ParentServer { get; set; }
public virtual ServerList ServerList { get; set; }
}
服务器列表.cs:
public partial class ServerList
{
public virtual ICollection<PockAdvCompany> Companies { get; set; }
public virtual Server AwsServer { get; set; }
[Key,Column("ServerId")]
public string ServerName { get; set; }
}
这是因为您的ForeignKey("ServerId")
不是ServerList
的属性,而是Server
的属性。它应该是将该类指向其父类的属性名称。 ServerList
FK 也是string
,但 PK 是int
试试这个
public partial class ServerList
{
public virtual ICollection<PockAdvCompany> Companies { get; set; }
public virtual Server AwsServer { get; set; }
[ForeignKey("AwsServer")]
public int ServerId { get; set; }
}
希望这有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.