c# - 映射具有不同名称的 EF 外键
问题描述
我有以下域类:
public class Product
{
public Guid? Id { get; set; }
public string? Name { get; set; }
}
public class Order
{
public Guid? Id { get; set; }
public string? Address{ get; set; }
public Guid? ProductId{ get; set; }
}
我没有使用导航属性来设置外键,而是按如下方式进行:
public void Configure(EntityTypeBuilder<Order> builder)
{
builder.HasOne<Product>()
.WithMany()
.HasForeignKey(c => c.ProductId);
}
我做更新数据库时的问题,它说字段 ProductId 不存在。这是因为它在表产品中命名为 Id,但在表顺序中它被命名为 ProductId。有没有办法用不同的名字映射外键?
解决方案
修改Product
类
public class Product
{
public Guid? Id { get; set; }
public string? Name { get; set; }
public ICollection<Order> Orders {get; set;}
}
关系会正常运作。
参考:关系
推荐阅读
- reactjs - setState 在数组映射函数中使用时没有正确设置状态(我们没有使用钩子它的旧项目)
- python-3.x - 迭代两个数据帧并在第二个数据帧中找到匹配值
- java - 如何为任何方法调用创建通用包装器?
- javascript - 在 Netlify 中集成 Stripe Checkout
- php - 浏览关闭后如何保存PHP会话?(没有单独的 cookie)
- android - 在安装 Android Studio 时,我收到带有文本的对话框 obection,因为 org.jetbrains.android 插件缺少 Windows 10
- php - 注意:尝试在第 97 行名称的 C:\xampp\htdocs\res\index.php 中访问 null 类型值的数组偏移量:
- mysql - 选择不能为空的列名
- express - Axios 无需在 gzip 中解压缩即可获取响应正文
- unity3d - 统一输入事件?