У меня есть очень простые отношения, моя модель выглядит следующим образом:ManyToOne ограничения не работает
public class Project
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
[ForeignKey(typeof(User))]
public int ProjectManagerID { get; set; }
[ManyToOne]
public User ProjectManager { get; set; }
}
public class User
{
public string Login { get; set; }
[OneToMany]
public List<Project> Projects { get; set; }
}
Проблема заключается в том, что я могу сохранить проект Ис, с ссылкой на пользователь без сохранения пользователя, и я не получить исключение с ограничениями ограничений.
database.Insert(new Project
{
Name = "aaa",
ProjectManagerID = 8
});
Я могу даже запросить мой проект с недопустимым идентификатором пользователя, но у меня нет записи в таблице пользователя. Еще одна интересная вещь: я не могу хранить строку, подобную приведенной выше, в моем инструменте управления SQLite при открытии этой базы данных, поэтому я уверен, что моя схема базы данных в порядке.
Это нормально в sqlite-net PCL-библиотеке с расширениями sqlite-net?
UPDATE: Моя SQLite версия 3.8.7.4
Выполнено выполнение базы данных.Execute ("PRAGMA foreign_keys = ON"), но database.Execute ("PRAGMA foreign_keys") возвращает 0 – veeroo
Фактическая база данных. Выполнение ("PRAGMA foreign_keys") генерирует исключение. Проблема все еще существует – veeroo
Это звучит как другой вопрос. Отредактировал ответ, чтобы отразить его. – redent84