Я новичок в ORMLite в ServiceStack. Я пытаюсь запросить существующую базу данных MySQL. Я создал это ПОКА, чтобы соответствовать моей сервировке стола в MySQL:ServiceStack ORMLite не заполняет результаты MySQL
[Alias("checks")]
public class Check
{
[AutoIncrement]
[PrimaryKey]
public long check_id { get; set; }
public long room_state_id { get; set; }
public DateTime? entry_stamp { get; set; }
public int student_id { get; set; }
public string reason { get; set; }
public string comments { get; set; }
public long check_type_id { get; set; }
public DateTime? check_dt { get; set; }
public byte grace { get; set; }
public DateTime curfew_dt { get; set; }
public int excused_by { get; set; }
public string status { get; set; }
public int points { get; set; }
public string check_class { get; set; }
public int leave_id { get; set; }
public DateTime night_of { get; set; }
public DateTime violation_dt { get; set; }
public string excused_reason { get; set; }
public DateTime? excused_dt { get; set; }
public sbyte imported { get; set; }
}
Вот определение
CREATE TABLE checks (
check_id bigint(11) NOT NULL AUTO_INCREMENT,
room_state_id bigint(11) NOT NULL DEFAULT 0,
entry_stamp datetime DEFAULT NULL,
student_id int(11) NOT NULL DEFAULT 0,
reason varchar(60) DEFAULT NULL,
comments text DEFAULT NULL,
check_type_id bigint(20) NOT NULL DEFAULT 0,
check_dt datetime DEFAULT NULL,
grace tinyint(4) UNSIGNED NOT NULL DEFAULT 0,
curfew_dt datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
excused_by int(11) NOT NULL DEFAULT 0,
status char(1) NOT NULL DEFAULT '',
points int(11) NOT NULL DEFAULT 0,
check_class char(2) NOT NULL DEFAULT '',
leave_id int(11) NOT NULL DEFAULT 0,
night_of date NOT NULL DEFAULT '0000-00-00',
violation_dt datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
excused_reason varchar(255) NOT NULL DEFAULT '',
excused_dt datetime DEFAULT '0000-00-00 00:00:00',
imported tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (check_id),
INDEX check_class (check_class),
INDEX check_dt (check_dt),
INDEX check_type_id (check_type_id),
INDEX excused_by (excused_by),
INDEX leave_id (leave_id),
INDEX night_of (night_of),
INDEX status (status),
INDEX student_id (student_id)
)
MySQL таблицы и я пытаюсь получить некоторые результаты использования:
public object Get(GetChecks request)
{
return new GetChecksResponse { Results = Db.Select<Check>(q => q.student_id == request.StudentId) };
}
Когда я проверяю это, я получаю таблицу результатов с правильным количеством строк, но ни одна из данных не заполняется (все поля во всех строках пустые или 0, за исключением времени, имеющего бессмысленную дату). Как я могу найти, почему ORMLite не заполняет мои POCOs?
ОБНОВЛЕНИЕ:
Протоколирование показывает много ошибок преобразования DateTime:
2016-01-23 15:35:53.5869|ERROR|OrmLiteWriteCommandExtensions|MySql.Data.Types.MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime
на MySql.Data.Types.MySqlDateTime.GetDateTime() на MySql.Data.MySqlClient.MySqlDataReader.GetValue (Int32 я) в MySql.Data.MySqlClient.MySqlDataReader.GetValues (Object [] значения) на ServiceStack.OrmLite.OrmLiteWriteCommandExtensions.PopulateWithSqlReader [T] (T objWithProperties, IOrmLiteDialectProvider dialectProvider, IDataReader читателя, Tuple`3 [] indexCache, объект [])
Имеет ли [регистрация] (https://github.co) m/ServiceStack/ServiceStack/wiki/Logging) показать ошибки? Вы создали таблицу с OrmLite, например: 'db.CreateTable()', или вы пытаетесь сопоставить ее с существующей таблицей? если да, укажите, пожалуйста, используемое определение Create Table. –
mythz