Member 13323381 Ответов: 1

Как развернуть автоматическое назначение и увеличение номера первичного ключа, связанного с SQLITE?


Привет,

Я столкнулся с проблемой, связанной с ведением записи идентификатора для записей базы данных.
Похоже, что когда я назначаю его вручную, а затем создаю соответствующие данные, то все в порядке.
Однако автоматическое назначение, похоже, не работает:
public class Notification
{
    [PrimaryKey, AutoIncrement]
    public int N_Id { get; set; }
    [MaxLength(250)]
    public string Topic { get; set; }
    public string Description { get; set; }
    public string Tag { get; set; }
}
.
Это поддерживается в классе уведомлений.
Не могли бы вы сообщить мне, связано ли это с конфигурацией public int N_ID или вы столкнулись с подобной проблемой?

С уважением,

Что я уже пробовал:

Добавление ", NotNull "после" AutoIncrement"

1 Ответов

Рейтинг:
1

Graeme_Grant

Из приведенного выше кода следует, что вы не задали атрибут таблицы для класса.

[Table(nameof(Notification))]
public class Notification
{
    [PrimaryKey, AutoIncrement]
    public int N_Id { get; set; }
    [MaxLength(250)]
    public string Topic { get; set; }
    public string Description { get; set; }
    public string Tag { get; set; }
}

Кроме того, как вы создаете таблицу? Вы делаете что-то вроде следующего:
var conn = new SQLiteConnection(path);
var newTable = conn.CreateTable<Notification>();


Member 13323381

Graeme_Grant, спасибо за ваш ответ и, пожалуйста, извините меня за задержку в моем.
Что касается кода: я добавил строку с [Table(nameof(Notification))], однако проблема с идентификатором, похоже, сохраняется.
Таблица создается так, как вы упомянули:

        public Database()
        {
            _sqlconnection = DependencyService.Get<SQLiteInterface>().GetConnection();
            _sqlconnection.CreateTable<Student>();
            _sqlconnection.CreateTable<Notification>();
        } 

Member 13323381

Graeme_Grant - не могли бы вы проверить комментарий, который я опубликовал выше?

Member 13323381

Graeme_Grant - не могли бы вы проверить комментарий от 27 июля?