Попробуйте использовать бетон IEntityTypeConfiguration<T>
:
public class TaskConfiguration : IEntityTypeConfiguration<Task>
{
public void Configure(EntityTypeBuilder<Task> builder)
{
builder.HasKey(tsk => tsk.Id);
//builder.HasMany(...) relationships et al.
}
}
И в вашем DbContext
определении (или как вы его назвали):
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ApplyConfiguration(new TaskConfiguration());
}
Это определенно должно настроить EFCore таким образом, что Id
будет первичным ключом для этого объекта. В качестве дополнительного преимущества вы получаете немного больше гибкости и более чистый код.