2017-02-17 10 views
0

Я использую расширение SQLite для создания БД. Отношение OnetoOne и отношения ManytoOne работают нормально, я использую InsertorReplacewithChildren для управления новыми и измененными элементами. Но когда дело доходит до отношений OnetoMany, у меня есть некоторые проблемы. После SQLite-Net Extensions Manual я добавил это в моем родительском классе:Updatewithchildren Расширение SQLite.net не заменяет старый элемент

[PrimaryKey, AutoIncrement] 
    public int ID_child { get; set; } 
... 
[OneToMany(CascadeOperations = CascadeOperation.All)] 
    public List<ClinicalTest> ClinicalTests_DB { get; set; } 

и это в моем классе ребенка:

[PrimaryKey, AutoIncrement] 
    public int ID_clinicaltest { get; set; } 

[ForeignKey(typeof(Child))] 
    public int ID_child { get; set; } 

Проблема заключается в том, что если я изменить некоторые поля элемента в моем ClinicalTest и I вызовите либо UpdatewithChildren (FatherClassInstance), либо InsertorReplacewithChildren (FatherClassInstance), результатом будет то, что в таблице ClinicalTests у меня есть две строки: один - это обновленный элемент (с правильным ключом для поиска), а один - старый элемент (без какой-либо команды).
Я бы ожидал только одной строки с обновленным элементом. Я что-то не так?
Должен ли я вручную очищать эти бесполезные элементы?
Спасибо,
Alex

ответ

0

Ничего, извините за беспокойство.
В моем коде идентификатор клинического теста был «потерян» во время некоторых проходов. Это и стало причиной проблемы.