Composite primary keys

When we have composite primary keys, we need to give them an order.

Problem

In some cases, you may need to have composite primary keys, that is, have a primary key that is composed of not a single column, but many. This is certainly a valid requirement, but, unless you configure it properly, Entity Framework will not work. And something that does not work is mapping attributes:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
public class MyClassWithCompositeKey
{
[Key]
  [Column(Order = 0)]
  public int KeyA { get; set; }
[Key]
  [Column(Order = 1)]
public string KeyB { get; set; }
  [Key]
  [Column(Order = 2)]
public Guid KeyC { get; set; }
}

Again, the preceding code will ...

Get Entity Framework Core Cookbook - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.