Расширение SQLite для xamarin.forms: удаление на каскаде не работает, но код компилируется без ошибок - PullRequest
0 голосов
/ 10 сентября 2018

Я использую SQLiteNetExtensions для создания внешнего ключа из одной таблицы в другую, чтобы я мог удалить его каскадно.Я следовал за документацией: https://bitbucket.org/twincoders/sqlite-net-extensions,

, но когда я удаляю запись в моей Таблице миссий, записи в моей Таблице местоположений, которые ссылаются на то, что первичный ключ не удаляется,

утра.Я что-то пропустил?

Это мои таблицы:

 using SQLiteNetExtensions.Attributes;

 public class Locations 
{
    [PrimaryKey, AutoIncrement]
    public int locationId { get; set; }

    [ForeignKey(typeof(Missions))]
    public int missionId { get; set; }

}

и:

using SQLiteNetExtensions.Attributes;

public class Missions
{
    [PrimaryKey, AutoIncrement]
    public int missionId { get; set; }

    public String missionName { get; set; }


    [OneToMany(CascadeOperations = CascadeOperation.CascadeDelete)]
    public List<Locations> Locations { get; set; }
}

Также этот метод удаления используется для удаления записей из таблицы миссий:

 public Task<int> DeleteMyMissionAsync(Missions myMission)
    {
        return database.DeleteAsync(myMission);
    }

Есть ли способ проверить, что делают эти атрибуты из расширения SQLite?мой код компилируется и запускается, поэтому я не знаю, где ошибка.

Я попытался также добавить «использование SQLiteNetExtensionsAsync», но это не имело никакого значения.

РЕДАКТИРОВАТЬ: изменил мойудалить метод для:

public Task DeleteMyMissionAsync(Models.MyCreatedMissions myMission)
    {

        return database.DeleteAsync(myMission, recursive: true); 

    } 

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

есть идеи?

...