EF добавление пользователя без идентификатора пользователя в Sql-Server - PullRequest
0 голосов
/ 20 марта 2019

Я хочу добавить пользователей в свою базу данных, используя набор БД, но я собираю только информацию о имени пользователя и пароле. Как я могу добавить без идентификатора пользователя?

Это мой конструктор:

public class User
    {
        [Key]
        public int Id { get; set; }

        [Required]
        [MaxLength(30)]
        public string Username { get; set; }

        [Required]
        [MaxLength(30)]
        public string Password { get; set; }

        public List<Note> Notes { get; set; }

        public User(string username, string password)
        {
            this.Id =  1;
            this.Username = username;
            this.Password = password;
        }

И это мой метод добавления:

                User user = new User(username, password);
                UserContext.Users.Add(user);
                UserContext.SaveChanges();

Когда я выполняю свой код, база данных все еще пуста.

1 Ответ

1 голос
/ 20 марта 2019

Попробуйте аннотировать свойство, как показано ниже, чтобы использовать автоинкремент https://www.w3schools.com/sql/sql_autoincrement.asp.

public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    [MaxLength(30)]
    public string Username { get; set; }

    [Required]
    [MaxLength(30)]
    public string Password { get; set; }

    public List<Note> Notes { get; set; }

    public User(string username, string password)
    {
        this.Username = username;
        this.Password = password;
    }
}

или используйте свободный API, как это

modelBuilder.Entity<User>()
            .HasKey(p => new { p.Id });

modelBuilder.Entity<User>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...