我对UniversalConverter方法有一个问题。从数据库接收的行应传输到实体。因此必须将rowpi.Name转换为实体类型。如何执行此操作?
public void GetRequestSummary(string UserName, string Password)
{
List<EducationRequest> requestSummary = new List<EducationRequest>();
OracleCommand command = new OracleCommand();
AddParameter(command, _usernamePN, DbType.String, UserName);
AddParameter(command, _passwordPN, DbType.String, Password);
AddOracleCursor(command, _curPN, OracleType.Cursor, ParameterDirection.Output);
command.CommandType = CommandType.StoredProcedure;
DataSet personaSet =
FillDataset(command, _GetRequestSummaryCmd);
DataTable personaTable =
personaSet.Tables[0];
var request = new EducationRequestSummary();
foreach (DataRow row in personaTable.Rows)
{
UniversalConverter(request, row);
}
//any implementation
}
public void UniversalConverter<T>(T entity, DataRow row)
{
foreach (var pi in typeof(T).GetProperties())
{
pi.SetValue(entity, row[pi.Name], null);
}
}发布于 2011-08-25 19:01:31
你需要或者像Automapper这样的东西
或者,您需要手动映射此对象,即使使用代码中提供的反射也是如此。在这种情况下,Kepp会注意属性名称和类型。
希望这能有所帮助。
https://stackoverflow.com/questions/7189183
复制相似问题