我们正在开发数据访问框架库以供业务组件调用以访问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