entity framework 怎么设置复合主键

2025-04-30 07:41:58
推荐回答(2个)
回答1:

可以多主键,如下:


using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
public class Entity
{
    [Key,Column(Order = 0)]
    public int Key1 { get; set; }

    [Key,Column(Order = 1)]
    public string Key2{ get; set; }

    [Key,Column(Order = 2)]
    public string Key3{ get; set; }
    //....
}

回答2:

我补充一下Fluent API的方式

public class Student4
    {
        public int Id1 { get; set; }
        public int Id2 { get; set; }
        public string Name { get; set; }
    }

然后在EF上下文的OnModelCreting方法中这样配置

modelBuilder.Entity().HasKey(x => new { x.Id1, x.Id2 });