我在从 2 个外键创建主键时遇到一些问题
模型示例:Element、Color、ElementToColor
ElementToColor 应包含 2 个表示元素和颜色关系的外键
[Key,Column(Order = 1)]
public Int ElementId {get; set;}
[Key,Column(Order = 2)]
public Int ColorId {get; set;}
但是当我尝试添加迁移时失败了
ElementToColor must have primary key
但为那个映射表设置主键是错误的,会产生重复数据
1,1,1
2,1,1
...
这种情况我该怎么办
我使用:
应用程序:asp.net core 2.1 webApi
数据库:MySql
ORM:MySql EFCore
最佳答案
找到了,我需要使用 Fluent API:
在ApplicationDbContext中我应该像这样重写方法OnModelCreating:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ElementToColor>().HasKey(e => new { e.ElementId, e.ColorId }
);
关于mysql - 如何在 MySql EFCore 中从 2 个外键创建主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51077553/