Как отобразить uint в NHibernate с SQL Server 2005

Я думаю, что ваш клиент может неправильно понять, что такое решение. Группировка ваших проектов в решении влияет только на ваше рабочее пространство в Visual Studio, это не означает, что ваши проекты имеют зависимости между ними (если вы явно не скажете это в их ссылках)

5
задан Krzysztof Kozmic 21 May 2009 в 14:40
поделиться

4 ответа

Самым чистым, официальным решением, вероятно, было бы написать тип пользователя.

Возьмите пример, например этот , и адаптируйте его . Если у вас много uint , стоит иметь тип пользователя.

<property name="Prop" type="UIntUserType"/>
4
ответ дан 14 December 2019 в 09:01
поделиться
<property name="Prop" type="long"/>
1
ответ дан 14 December 2019 в 09:01
поделиться

Haven 'Я пробовал это, поэтому не уверен, что это сработает для вас, но вы можете попробовать создать свой собственный диалект и зарегистрировать его в web.config / app.config

Класс диалекта:

public class MyDialect:MsSql2005Dialect
{
    public MyDialect()
    {            
        RegisterColumnType(System.Data.DbType.UInt32, "bigint");            
    }
}

Web.config:

configuration>
 <configSections>
  <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
 </configSections>

                <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
   <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider, NHibernate</property>
   <property name="connection.connection_string">
    Server=127.0.0.1; Initial Catalog=thedatabase; Integrated Security=SSPI
   </property>
   <property name="dialect">MyDialect</property>
   <property name="current_session_context_class">managed_web</property>
  </session-factory>
 </hibernate-configuration>
    <!-- other app specific config follows -->

</configuration>
2
ответ дан 14 December 2019 в 09:01
поделиться

Вы можете попробовать добавить другое частное свойство "зеркало".

public class Enity
{
   public uint Count {get;set;}

   private long CountAsLong 
   { 
     get { return Convert.ToInt64(Count); } 
     set { Count = Convert.ToUInt(value); }
   }
}

<property name="CountAsLong" type="long"/>

Конечно, вы должны сделать это только , если это не может быть решено с помощью сопоставления.

0
ответ дан 14 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: