NHibernate - 12 месяцев / 1 год и привязка данных - PullRequest
0 голосов
/ 11 марта 2009

Каков наилучший способ справиться с этим? У меня есть приложение, в котором мне постоянно приходится «сводить» 12-месячные записи в одну запись / объект года, чтобы иметь возможность отображать один год на строку в DataGrid. До этого момента я выполнял эту работу в DataSets с каким-то уродливым T-SQL, чтобы получить возможность разворота.

Сейчас я обновляю это приложение до NHibernate, и это единственная проблема, с которой я столкнулся.

В качестве примера, скажем, у меня есть тест, который я даю группе студентов один раз в месяц. Мой DDL может выглядеть так:

CREATE TABLE [Score](
    [ScoreId] [int] IDENTITY(1,1) NOT NULL,
    [StudentId] [int] NOT NULL,
    [Year] [int] NOT NULL, -- 4 digit year as an int
    [Month] [int] NOT NULL, -- 1 through 12 month value as int
    [TestScore] [int] NOT NULL
)  

Я хотел бы отобразить в DataGrid (одна запись на одного учащегося / год) следующие поля:
Имя учащегося, год, январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь

Каков нормальный способ решения этой задачи с помощью NHibernate? Как бы вы справились с этим?

Ответы [ 2 ]

1 голос
/ 14 марта 2009

По моему мнению, лучше использовать NHibernate в качестве чистого ORM и оставить поворот к своему коду. Это означает использование NHibernate для чтения строки в таблице в том виде, в каком она есть в классе с взаимно-однозначным отношением со столбцами таблицы, а затем использование метода класса (или свойства с некоторой логикой в ​​геттере) для сделать поворот.

В чистом DDD вы должны использовать сервис для этого (вместо помещения этой логики в объект домена).

После этого вы можете привязать результаты к сетке для представления.

0 голосов
/ 25 марта 2009

Я думал, что добавлю это к разговору.

Этот поток говорит о переборе ToString () класса. Я думаю, что я мог бы сделать это для моих объектов MonthValue ... просто пусть они возвращают счет через ToString ();

Однако это не решает проблему с отображением. По другим комментариям по этому вопросу, синтаксис точки не работал для меня в DataPropertyName.

...