mysql - 如何在 MySql EFCore 中从 2 个外键创建主键

标签 mysql asp.net-core-2.0 ef-code-first-mapping

我在从 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/

相关文章:

mysql - 带解密的多个Where子句

c# - 不同角色的不同 API 功能

c# - 可以查询 NotMapped 属性吗?

MYSQL分组和过滤过滤器

php - 在 MySQL 中存储用户签名

mysql - 如何在 mysql 中的两个值之间插入一个新值。?

azure - 使用自定义 nuget.config 的 webapp 的 nuget 包恢复失败

asp.net-core-2.0 - ASPNET Core 2 中的自定义策略身份验证(jwt 身份验证)

c# - 如果首先使用 EF 核心代码映射不存在,则会出现错误