我正在尝试创建一个通用类来保存日志
这里我们使用实体框架,所以假设我们有表 mng_users(string usr_name, int usr_id) 为 itentity 创建相应的类)
有没有办法实现 toDataTable 方法将实体转换为数据表(不是列表,只有 1 行)所以我可以这样做:
将 mng_users1 和 mng_users2 作为 mng_users 实体类(都具有相同的 id 但名称不同)
调用方法“保存日志(mng_users1,mng_users2);” 并执行以下代码:
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
}