I have model like below. While inserting data into SQL Server database, I want that 'id' column will be identity column and rest properties(NPI, Name) will be passed from my GetData() method.
But if I run Add-Migration in package manager console, I am getting the below error "the seed entity for entity type 'EmpModel' cannot be added because a non-zero value is required for property 'id'. Consider providing negative value to avoid collisions with non-seed data". Can you help me to solve the issue please?
public class EmpModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public string NPI { get; set; }
public string Name { get; set; }
}
I have context class like below,
public class EmployeeDbContext : DbContext
{
public EmployeeDbContext(DbContextOptions<EmployeeDbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
EmployeeFile file = new EmployeeFile();
var response = file.GetData(); // getting data
builder.Entity<EmpModel>.HasData(
new EmpModel()
{
NPI = response.npiId,
Name = response.FullName
}
);
builder.Entity<EmpModel>().Property(p => p.id).ValueGeneratedOnAdd();
builder.Entity<EmpModel>().HasKey(x => new { x.id}); //defining the primary key
}
}