Как создать EF Core ID за один шаг? - PullRequest
0 голосов
/ 21 марта 2019

Я изучаю EF Core и делаю удостоверение личности на имущество POCO Road, приведенное ниже

public class Road
{
    public int rid { get; set; }
    public string rname { get; set; }
    public string zip { get; set; }
},

В настоящее время мое решение состоит из двух этапов:

1: добавление PK

2: использование метода ValueGeneratedOnAdd ()

modelBuilder.Entity<Road>()
       .HasKey(x => x.rid);

modelBuilder.Entity<Road>()
       .Property(x =>x.rid)
       .ValueGeneratedOnAdd();

Я хочу одношаговое решение, как это сделать?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Вы можете сделать метод расширения:

public static class ModelBuilderExtensions 
{
    public static EntityTypeBuilder<T> HasKeyWithValueGeneratedOnAdd<T>(
        this EntityTypeBuilder<T> b,
        Expression<Func<T, object>> expression) 
    where T : class
    {
      b.HasKey(expression);
      b.Property(expression).ValueGeneratedOnAdd();
      return b;
    }
}

Затем использовать его как однострочник:

modelBuilder.Entity<Road>().HasKeyWithValueGeneratedOnAdd(x => x.rid);
0 голосов
/ 21 марта 2019
        public class Road
        {
            [Key]
            public int rid { get; set; }

            public string rname { get; set; }
            public string zip { get; set; }
        },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...