SqlCeException NHibernate - PullRequest
       3

SqlCeException NHibernate

0 голосов
/ 15 июня 2011

Я использую Sql Compact Edition.

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

ТАБЛИЦА «Set»: [PK: IdSet (int), IdProject (int), IdSetState (int), IdPriority (int), NumSet (int), Unit (nchar), NumDisc (int)]

И используя тестирование NUnit.

это мой метод испытаний:

[Test]
        public void Can_add_Set()
        {
            var set = new Set { IdProject = 2, IdSetState = 2, NumDisc = 1, IdPriority = 3, NumSet = 100};
            setRepository.AddSet(set);
        }

это мой метод для вставки набора:

public void AddSet(Set set) 
        {
            using (ISession session = NHibernateSessionBuilder.OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Save(set);
                transaction.Commit();
            }
        }

Это отображение:

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

  <class name="Set">
    <id name="IdSet">
      <generator class="identity"/>
    </id>
    <property name="IdProject" />
    <property name="IdSetState" />
    <property name="IdPriority" />
    <property name="Unit" />
    <property name="NumDisc" />
    <property name="NumSet" />
  </class>

</hibernate-mapping> 

при сеансе. Сохранение (установка); возникает эта ошибка:

Код пользователя не контролирует SqlCeException

Не удалось проанализировать запрос. [Номер строки токена = 1, смещение строки токена = 13, Ошибка токена = установлено]

Что бы это могло быть?

1 Ответ

0 голосов
/ 17 июня 2011

вы не указываете таблицу, поэтому nhibernate принимает Set в качестве имени таблицы.Set является зарезервированным словом в большинстве баз данных.Вы можете попытаться избежать этого

<class name="Set" table="`Set`">

Я не уверен, что использовал правильные обратные пометки, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...