Ana içeriğe geç

Form Üzerindeki Execute Query'yi Kullanmak

ServiceAPI'den daha hızlı olan Form üzerindeki ExecuteQuery methodunun kullanımını ve dönen sonucun anlaşılır hale getirilmesi.

Kullanacağımız ilgili datasource içindeki Kolonlar sekmesi altında gelen kolonların tiplerine göre Class oluşturmalıyız. Bu bize gelen veriyi kullanım kolaylığı sağlacaktır.

Kullanım Örneği

var res = ExecuteQuery<Class>(DataSourceName, new[] { new { ParameterKey = ParameterValue } });

Örnek Class

public class Class
{
public int ID { get; set; }
public string USERNAME { get; set; }
public string FIRSTNAME { get; set; }
}

Yardımcı Metot

public List<T> ExecuteQuery<T>(string queryName, object[] queryArguments) where T : class, new()
{
var queryResult = (List<Dictionary<string, object>>)((DataSourceResponse)ExecuteQuery(queryName, queryArguments).Result.QueryResult).Result;
List<T> typedList = new List<T>();
foreach (var dictionary in queryResult)
{
T typed = new T();
foreach (var kvp in dictionary)
{
if (kvp.Value is not DBNull)
{
typed.GetType().GetProperty(kvp.Key).SetValue(typed, kvp.Value);
}
}
typedList.Add(typed);
}
return typedList;
}