2015-07-09 3 views
1

У меня есть проект Xamarin Forms, который использует SQLite. У меня есть родительский и дочерний модели с правильными параметрами Foreign Key, ManyToOne и Cascading в соответствующих полях.SQLite Async Connection missing WithChildren Methods

Я использую AsyncLock класс Скотта Хансельман в (http://www.hanselman.com/blog/ComparingTwoTechniquesInNETAsynchronousCoordinationPrimitives.aspx) в моих методах дб, как это:

public async Task<List<Client>> GetAllAsync() 
{ 
    List<Client> clients = new List<Client>(); 
    using (await SQLiteBase.Mutex.LockAsync().ConfigureAwait(false)) 
    { 
     //SQLiteAsyncConnection _connection is set up elsewhere... 
     clients = await _sqLiteBase._connection.Table<Client>().ToListAsync().ConfigureAwait(false); 
    }   

return clients; 
} 

Нет проблемы до сих пор. Проблема, с которой я столкнулся, заключается в том, что я не вижу каскадных действий в этом соединении. Я добавил обычный SQLiteConnection, который имел методы - WithChildren, но мне нужно использовать соединение SQLiteAsyncConnection.

У меня есть ссылки на SQLite.Net, SQLiteNetExtensions, SQLite.Net.Async и SQLitePCL.raw.

Почему я не вижу методы ~ WithChildren в объекте асинхронного подключения?

ответ

3

Вы должны добавить пакет SQLiteNetExtensions.Async к вашему проекту https://www.nuget.org/packages/SQLiteNetExtensions.Async/

+0

@Daniel_Luberda Спасибо, я пытался понять, почему имеющие SQLiteNetExtensions не позволяют мне делать WithChildren звонков. Ваш ответ исправил это. Теперь мне просто нужно выяснить, почему вызовы WithChildren не возвращаются. – callisto

+0

Нет проблем. Что ты имеешь в виду, что они не возвращаются? Я думаю, что это может быть связано с ConfigureAwait (false)), что означает, что вам не нужны последующие вызовы в том же контексте потока, но я уверен, что sqlite нуждается в том же контексте для соединения и его методов. –