我在用2个前摄键制作主键时遇到了一些问题
模型示例:Element,Color,ElementToColor
ElementToColor应该包含2个表示元素和颜色关系的foregin键
[Key,Column(Order = 1)]
public Int ElementId {get; set;}
[Key,Column(Order = 2)]
public Int ColorId {get; set;}
但是当我尝试添加迁移失败
ElementToColor必须具有主键
但是为映射表的国王创建主键是错误的,它将复制数据
1,1,1
2,1,1
...
在那种情况下我该怎么办
我使用:
应用程序:asp.net核心2.1 webApi
数据库:MySql
ORM:MySql EFCore
答案 0 :(得分:0)
找到它,我需要使用流畅的API:
在ApplicationDbContext中,我应该像这样重写方法OnModelCreating:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ElementToColor>().HasKey(e => new { e.ElementId, e.ColorId }
);