@embiid

Насколько правильное отношение моделей?

Получаю ошибку: CREATE UNIQUE INDEX duplicate key when I update-database by EF Core

public class Role : IEntity
    {
        public int Id { get; set; }

        public string Label { get; set; }

        public User User { get; set; }
    }


public class User : IEntity
    {
        public int Id { get; set; }

        public string FirstName { get; set; }

        public int RoleId { get; set; }

        public Role Role { get; set; }
    }


public void Configure(EntityTypeBuilder<Role> entity)
        {
            entity
                .HasKey(key => key.Id);

            entity
                .Property(property => property.Label)
                .HasDefaultValue("Customer")
                .HasMaxLength(20)
                .IsRequired();

            entity
                .HasOne(property => property.User)
                .WithOne(property => property.Role)
                .HasForeignKey<User>(property => property.RoleId);
        }
  • Вопрос задан
  • 17 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Rossman
Banned on google
Вероятно, Вы хотите реализовать функционал - у одной роли есть несколько пользователей, лучше всего делать это по соглашениям - связей
public class Role : IEntity
    {
        public int Id { get; set; }

        public string Label { get; set; }

        public ICollection<User> Users { get; set; }
    }


public class User : IEntity
    {
        public int Id { get; set; }

        public string FirstName { get; set; }

        public int RoleId { get; set; }

        public Role Role { get; set; }
    }

Так как из соглашения о ключах всё впорядке - из секции конфигурации оставить только
entity
                .Property(property => property.Label)
                .HasDefaultValue("Customer")
                .HasMaxLength(20)
                .IsRequired();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы