Sto cercando di fare una classe generica per salvare il loginEntity classe per Datatable
Qui usiamo Entity Framework quindi immaginare abbiamo tavolo mng_users (usr_name stringa, int usr_id) creando la rispettiva classe per itentity)
c'è un modo per implementare il metodo toDataTable convertire l'entità in una datatable (non una lista, avente da 1 fila solo) in modo che possa fare qualcosa di simile:
avente mng_users1 e mng_users2 come classe mng_users entità (entrambi con lo stesso id ma nome diff)
metodo di chiamata "savelog (mng_users1, mng_users2);" e fare il seguente codice:
private DataTable toDataTable(Object T)
{
DataTable vDataTable = new DataTable();
//AddColums here
//AddRow with the respective values here
return vDataTable;
}
public void savelog(Object newObject, Object oldObject)
{
DataTable newvalue, oldvalue;
newvalue = toDataTable(newObject);
oldvalue = toDataTable(oldObject);
string FieldNames = string.Empty, FieldValuesFrom = string.Empty, FieldValuesTo = string.Empty;
foreach (DataColumn item in newvalue.Columns)
{
if (newvalue.Rows[0][item].ToString() != oldvalue.Rows[0][item].ToString())
{
FieldNames += (FieldNames.Length > 0 ? " | " : string.Empty) + item.ColumnName;
FieldValuesFrom += (FieldValuesFrom.Length > 0 ? " | " : string.Empty) + newvalue.Rows[0][item].ToString();
FieldValuesTo += (FieldValuesTo.Length > 0 ? " | " : string.Empty) + oldvalue.Rows[0][item].ToString();
}
}
// Save log to sql code here
}
Salve, ha funzionato con alcune modifiche ... ma non potevo usare il metodo ToDataTable, dovevo usarlo nel metodo SaveLog. – user1859887
puoi sempre estrarre un metodo dal codice inline. Ho visto che ho dimenticato di impostare il tipo di ritorno del metodo. dovrebbe funzionare ora. –
@ user1859887 che è ** SalvaLog **? – Kiquenet