Синтаксис порядка колонок Fluent Api

Я пытаюсь понять, как поместить это много-много аннотаций в свободный API. Я просто не знаю синтаксис для представления порядка столбцов.

public class UserNotification
   {
     [key]
     [Column(Order = 1)]
     public string UserId { get; set;}

     [key]
     [Column(Order = 2)]
     public int NotificationId {get; set;}

     public ApplicationUser User{get; set;}
     public Notification Notification {get; set;}
   }

Я знаю, что свободно Api будет выглядеть так:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<UserNotification>()
     .HasKey(n => new {n.UserId, n.NotificationId});

    // What about the Column Order? 
}

1 ответ

Решение

Вы можете прочитать Key а также Column Данные аннотации выглядят следующим образом:

UserNotification имеет ключ, состоящий изстолбцов UserId иNotificationId, причемUserId является первым, аNotificationId- вторым.

то есть атрибут порядка столбцов используется только для определения того, какой столбец является первым, вторым и т. д. в контексте составного первичного ключа.

Свободному API это не нужно, потому что вы описываете как ключевые столбцы, так и их порядок внутри HasKey выражение:

modelBuilder.Entity<UserNotification>()
   .HasKey(n => new { n.UserId, n.NotificationId });
//                        ^            ^
//                      first        second

Другими словами, вы сделали это правильно, никаких дальнейших действий не требуется.

Другие вопросы по тегам