我們正在開發數據訪問框架庫以供業務組件調用以訪問Xamarin應用程序的SQLlite數據庫。 要針對DB執行SELECT Sql,請遵循以下方法。對於匿名方法和使用新功能來說很陌生,所以需要建議 我期待反正可以提高此實現的效率。返回列表的通用方法
private static readonly Lazy<AppDB> Lazy = new Lazy<AppDB>(() => new AppDB());
public static AppDB Instance => Lazy.Value;
private SQLiteAsyncConnection _conn =null;
static object locker = new object();
private SQLiteAsyncConnection DbConnection
{
get
{
if (_conn == null)
{
LazyInitializer.EnsureInitialized(ref _conn, DependencyService.Get<ISQLite>().GetAsyncConnection);
}
return _conn;
}
}
public List<T> ExecuteQuery<T>(string sqlQuery, object[] parameters = null) where T: class
{
List<T> l = new List<T>();
try
{
l = parameters !=null ? DbConnection.QueryAsync<T>(sqlQuery,parameters).Result : DbConnection.QueryAsync<T>(sqlQuery).Result;
}
catch (Exception e)
{ }
return l;
}
你有什麼問題具體?你的問題現在有點寬泛。 – Maxime
請不要編寫像catch(Exception e)這樣的代碼,更不要說catch(Exception e){}'。捕捉基本異常是一種糟糕的反模式。 – Enigmativity
你爲什麼叫'新列表();'只是爲了重新分配'l'呢? –
Enigmativity