Ho una classe chiamata DataPoint
che è definita come la seguente. Attualmente, passa attraverso ogni proprietà su un oggetto e in base a DataPoint
, esegue alcune formattazioni come padding, trimming, ecc. Prima di salvare il record nel database. L'attuale implementazione makes a database call for each property
che è lenta, quindi il mio primo passo è quello di ottenere tutto in una raccolta in memoria. Cos'altro posso fare qui sotto? È un buon candidato per un singleton dato che i dati cambiano raramente e / o è possibile memorizzarlo nella cache (se sì, come)?
public class DataPoint
{
public string Name {get;set;}
public string Justification {get;set;}
public int MaxLength {get;set;}
public string Format {get;set;}
public DataPoint GetDataPoint(string name)
{
var dataPoint =
db.Query<DataPoint>("SELECT * FROM DataPoint WHERE name = @name", new {name}).FirstOrDefault();
return dataPoint;
}
public T FormatObj<T>(T obj)
{
foreach (var propertyInfo in typeof(T).GetProperties())
{
var dataPoint = GetDataPoint(propertyInfo.Name);
//Do formatting on obj Properties such as setting values, etc...
}
return obj;
}
}