Проблема картографирования NHibernate - PullRequest
1 голос
/ 21 февраля 2010

У меня есть таблица как:

CREATE TABLE [dbo].[MOVIES_HISTORY](
 [DATE] [datetime] NOT NULL,
 [COUNT] [int] NOT NULL CONSTRAINT [DF_MOVIES_HISTORY_COUNT]  DEFAULT ((0)),
 CONSTRAINT [PK_MOVIES_HISTORY] PRIMARY KEY CLUSTERED 
(
 [DATE] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

Класс:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Kinoplex.Models
{
    public class MoviesHistory
    {
        private DateTime date;
        private int count;

        public DateTime Date
        {
            get
            {
                return date;
            }
            set
            {
                date = value;
            }
        }

        public int Count
        {
            get
            {
                return count;
            }
            set
            {
                count = value;
            }
        }
    }
}

Файл сопоставления:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="Kinoplex.Models"
                   assembly="Kinoplex">

  <class name="MoviesHistory"
         dynamic-insert="true"
         dynamic-update="true"
         lazy="false"
         table="MOVIES_HISTORY">


    <id name ="Date" column="DATE" type="datetime">
    </id>

    <property name ="Count" >
      <column name="COUNT" sql-type="int" not-null="true"></column>
    </property>



  </class>
</hibernate-mapping>

Все остальные классы работают, у меня проблема только с этим.

Выполнение запроса, например:

IQuery query = this.session.CreateQuery("from MoviesHistory");

приводит к исключению:

История фильмов не отображается [из истории фильмов]

Кто-нибудь может сказать мне, что не так? Я подозреваю, что столбец идентификатора может быть неправильным, но ничего не могу найти по этому поводу.

1 Ответ

4 голосов
/ 21 февраля 2010

Убедитесь, что на вашем .hbm.xml задано действие сборки для Встроенный ресурс в вашем проекте, иначе оно не будет включено в сопоставления при запуске nHibernate.

Кроме того, не имеет значения, что это важно, но DateTime должен иметь надлежащий корпус для обеспечения безопасности (не уверен, что парсер nHibernate больше не заботится об этом, в один прекрасный момент это не так):

<id name="Date" column="DATE" type="DateTime">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...