Платформа приложения: ASPNET Core 2.1
это мой класс
public class Employee
{
[DataMember(Name = "key")]
[Key]
public Guid Key { get; set; }
[Required]
[DataMember(Name = "Name")]
public string Name { get; set; }
}
У меня есть код ниже, который позволяет заполнять данные и автоматически генерировать столбец Guid
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//Auto generation of Guid
modelBuilder.Entity<Employee>().Property(x => x.Key).HasDefaultValueSql("NEWID()");
//seeding of data
modelBuilder.Entity<Employee>().HasData(
new Employee{ Name = "Hamlet" },
new Employee{ Name = "King Lear" },
new Employee{ Name = "Othello" }
);
}
Я получаю следующую ошибку при выполнении команды add-migration InitialCreate
Исходный объект для типа объекта "Сотрудник" не может быть добавлен, так как не было предоставлено значение для требуемого свойства "Ключ".
Я не хочу отправлять значение для Key
. Я хочу, чтобы он автоматически генерировался в базе данных SQL Server.
Мое основное требование: вставлять основные данные (обновленные) всякий раз, когда я запускаю update-database
в консоли диспетчера пакетов.
HasData
не имеет перегрузки, которая принимает совпадающую спецификацию ключа, как это имеетAddOrUpdate
. Это может быть запрос функции. До тех пор ваш единственный вариант — указать значение ключа. Однако обратите внимание, что вам всегда понадобится указанный ключ, если вы также хотите заполнить данные, относящиеся кEmployee
. - person Gert Arnold   schedule 24.11.2018