Добавить внешний ключ в мой код C # для Sqlite - PullRequest
0 голосов
/ 04 февраля 2019

Я создал базу данных Sqlite, но когда я зашел в Xamarin.forms, я понял, что должен создать класс для каждой таблицы в моей базе данных Sqlite.

У меня есть 3 таблицы:

  1. User с 3 столбцами UserID (PK), Mail (уникальный), пароль
  2. Ticket с 4 столбцами TicketID (PK), Name,Description, TicketValue
  3. UserTickets с 4 столбцами UserID (FK), TicketID (FK), TicketValue (FK)

In C #Я мог бы обработать первичный ключ и уникальный ключ, используя

[PrimaryKey, Unique]

, как показано выше.

Но я не знаю, как установить внешний ключ.

Я используюNuget Sqlite

1 Ответ

0 голосов
/ 04 февраля 2019

Похоже, вы пытаетесь создать таблицы с внешними ключами в SQLite.Если это правильно, это должно помочь.

В SQLite во время создания таблицы вы можете установить ссылки на внешний ключ в конце вашего запроса.Например, запрос на создание таблицы заявок пользователей будет выглядеть следующим образом.

CREATE TABLE `UserTickets` (
`UserID`    INTEGER,
`TicketID`  INTEGER,
`TicketValue`   INTEGER,
FOREIGN KEY(`UserID`) REFERENCES `User`(`UserID`)
FOREIGN KEY(`TicketID`) REFERENCES `Ticket`(`TicketID`)
FOREIGN KEY(`TicketValue`) REFERENCES `Ticket`(`TicketValue`)
);

Теперь важно включать внешние ключи при каждом подключении к базе данных.SQLite не сделает этого за вас, поэтому убедитесь, что он указан в строке подключения, если вы добавите ограничения внешнего ключа, такие как «ON DELETE CASCADE»

Пример:

 SQLiteConnection conn = new SQLiteConnection("Data Source = [Your DB Path];foreign keys=true;");

Последнее примечание: выпотребуется настроить запрос на создание таблицы, чтобы добавить любые приращения или уникальные ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...