Я пытаюсь добавить обнуляемое сопоставление внешнего ключа, но оно не работает. Я знаю, что база данных допускает пустые значения, поскольку при использовании Datagrip я могу вставить новую запись с нулевым внешним ключом. Я получаю ошибку только при попытке вставить из сборки проекта Xamarin.Forms для Android (SQLite.SQLiteException: 'Constraint') Мои классы выглядят так:
public class Item
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
...
[ForeignKey(typeof(Location))]
public int LocationId { get; set; }
[ManyToOne]
public Location Location { get; set; }
}
public class Location
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
...
[OneToMany]
public List<Item> Items { get; set; }
}
А мои вставки похожи на
//This will no work
var todoItem = new Item()
{
Name = "Test item " + DateTime.Now.TimeOfDay.ToString(),
Description = "Desc",
Location = null // I tried with and without this line
};
await App.Database.SaveItemAsync(todoItem);
//This will work
var todoItem = new Item()
{
Name = "Test item " + DateTime.Now.TimeOfDay.ToString(),
Description = "Desc",
LocationId = 1
};
await App.Database.SaveItemAsync(todoItem);
Есть идеи, что я делаю не так? Спасибо