У меня проблема с получением отношений "многие ко многим". У меня есть следующая структура:
public class Story {
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
// foreground
[ManyToMany(typeof(StoryForeground), "StoryId", "Stories", CascadeOperations = CascadeOperation.All)]
public List<ForegroundStored> Foregrounds { get; set; }
}
public class StoryForeground
{
public int ForegroundStoredId { get; set; }
public int StoryId { get; set; }
}
public class ForegroundStored
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[ManyToMany(typeof(StoryForeground), "ForegroundStoredId", "Foregrounds", CascadeOperations = CascadeOperation.CascadeRead, ReadOnly = true)]
public List<Story> Stories { get; set; }
}
Для хранения я использую SQLiteExtensions,
var conn = await GetDatabaseConnection<Story>().ConfigureAwait(false);
await conn.InsertWithChildrenAsync(story).ConfigureAwait(false);
Для извлечения
var conn = await GetDatabaseConnection<Story>().ConfigureAwait(false);
return await AttemptAndRetry(async () => await conn.GetAllWithChildrenAsync<Story>(recursive: true).ConfigureAwait(false));
Когда я сохраняю, я вижу таблицы Story, ForegroundStored и StoryForeground имеют соответствующие значения в базе данных SQLite. Однако, когда я получаю список историй, мой параметр Foregrounds в классе истории имеет значение null.
Что я делаю не так?