entity-framework-core - EF Core 5 列名“OwnerIdOwner”无效
问题描述
我有 2 个实体Owner
和Property
,我想创建一个外键关系。
这些是实体:
public class Owner
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public long IdOwner { get; set; }
}
public class Property
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public long IdProperty { get; set; }
public long IdOwner { get; set; }
}
具有上下文设置的文件:我已经使用注释和未注释的代码生成了迁移,OnModelCreating
但我得到了相同的结果。
public DbSet<Owner> Owner { get; set; }
public DbSet<Property> Property { get; set; }
/**
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Property>()
.HasOne<Owner>()
.WithMany()
.HasForeignKey(p => p.IdOwner);
}
*/
我迁移到 SQL Server,它创建表、列,但我不希望它创建OwnerIdOwner
列,因为我的外键关系与IdOwner
列,如屏幕截图所示:
如果我修改迁移文件并删除OwnerIdOwner
属性以免Property
在数据库中的表中创建列:
当我运行端点而不OwnerIdOwner
在数据库中创建列时,我收到此错误:
消息:更新条目时发生错误。有关详细信息,请参阅内部异常。
来源:Microsoft.EntityFrameworkCore.Relational列名“OwnerIdOwner”无效。
核心 Microsoft SqlClient 数据提供程序 207
{Microsoft.Data.SqlClient.SqlError:无效的列名'OwnerIdOwner'。}
我不明白它为什么会产生这个错误以及如何解决它。
任何帮助表示赞赏。
解决方案
推荐阅读
- javascript - javascript中2个src的比较
- c++ - Visual Studio 2019 的 OpenCV 错误和警告
- vue.js - Vue v-for 组件中的数据问题
- c# - 如何在我的 asp.net core 3.1 应用程序中播种用户和角色?
- vue.js - Vuejs引导b表数据未加载/更新
- python - 我怎样才能设法在这个最短路径问题中获得请求的输出?
- python - plotly-python 是否支持主图后面的“add_traces”?
- python - 自定义 Python 转译器
- c - 我想要一个 C 程序来接受来自 linux 命令行的参数
- c# - 在 Unity 中触摸结束后,有没有办法查找最后按下的项目是否是 UI 元素