Próbuję zrobić rodzajowe klasy, aby zapisać logPodmiot klasa DataTable
Tutaj używamy Entity Framework więc sobie wyobrazić, mamy tabeli mng_users (string, int usr_id usr_name) tworząc odpowiednią klasę dla itentity)
czy istnieje sposób wdrożyć toDataTable metodę konwersji podmiotu do DataTable (nie na listę, posiadający 1 wiersz tylko), więc mogę zrobić coś takiego:
mający mng_users1 i mng_users2 jako klasy podmiotu mng_users (oba o tej samej nazwie id, ale o innej nazwie)
metoda połączenia "savelog (mng_users1, mng_users2);" i wykonać następujący kod:
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
}
Witam, zadziałało to z kilkoma poprawkami ... ale nie mogłem użyć metody ToDataTable, musiałem użyć jej w metodzie SaveLog. – user1859887
zawsze można wyodrębnić metodę z kodu wbudowanego. Widziałem, że zapomniałem ustawić typ zwrotu metody. teraz powinno działać. –
@ user1859887 czyli ** SaveLog **? – Kiquenet