NHibernate: лучший способ отобразить в DateTime значение, хранящееся нестандартным способом - PullRequest
0 голосов
/ 26 декабря 2008

Я только начинаю работу с NHibernate (в 15-й раз, казалось бы) и у меня возникает следующая проблема.

Следующая таблица:

Table Facility
Column FACILITY_ID integer
Column NAME varchar2(50)
Column MONTH varchar2(5)

По какой-то причине месяц является строкой, а не собственным типом даты, и выглядит следующим образом:

"200811" represents 11/01/2008
"200307" represents 07/01/2003
you get the idea

Я хотел бы сопоставить его со следующим классом

public class Facility {
  int Id {get; set;}
  string Name {get; set;}
  DateTime Month {get; set;}
}

Я хотел бы сопоставить столбец MONTH со свойством Month, но не совсем знаю, как подходить к ситуации. Очевидно, что у меня может быть защищенная строка свойства MonthString и свойство Month для анализа этого столбца, но это выглядит странно. Есть ли лучшее решение?

Ответы [ 2 ]

1 голос
/ 26 декабря 2008

Я думаю, что лучшим решением может быть использование пользовательского типа значения .

0 голосов
/ 01 января 2009

Если вы не можете изменить схему базы данных, ответом будет IUserType. Вот хорошая статья .

Существует множество точек расширения, которые могут помочь вам решить сложные проблемы в NHibernate. Наиболее полезной точкой расширения является IUserType.

...