Oracle某個字段是Number類型,實體用了Int類型,底層查詢代碼就會報錯:類型“System.Decimal”的對象無法轉換爲類型“System.Int32”。
#region DataReader轉化爲實體
protected T PopulateDataReaderToModel<T>(IDataReader reader) where T : new()
{
T item = default(T);
item = new T();
Type type = typeof(T);
List<string> DbFieldList = type.GetProperties().Where(s => s.Name != "DataTable_Action_").Select(s => s.Name).ToList<string>();
foreach (string info in DbFieldList)
{
if (reader[info] != null && reader[info] != System.DBNull.Value)
{
type.GetProperty(info).SetValue(item, reader[info], null);
}
}
return item;
}
#endregion
解決方法:
把實體Int類型改爲decimal類型就好了。