相关疑难解决方法(0)

NHibernate 2.*映射文件:如何定义可空的DateTime类型(DateTime?)?

我知道NHibernate 2的一个重大变化是*不再支持NHibernate.Nullables.因此,您在映射文件中使用什么来映射可为空的DateTime?类型?对于ie:

可以理解的是不起作用:

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" />
Run Code Online (Sandbox Code Playgroud)

不再支持:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/>
Run Code Online (Sandbox Code Playgroud)

我知道它一定很明显,但我找不到它!

答案很简单:NHibernate会反映出有问题的类,并发现该属性的反射类型是DateTime?一切都靠自己.

谢谢@Justice!

nhibernate datetime nullable nhibernate-mapping

16
推荐指数
1
解决办法
1万
查看次数

NHibernate不会持久化DateTime SqlDateTime溢出

我正在使用NHibernate作为后端的ASP.NET MVC项目,并且在获取一些日期以回写到我的SQL Server数据库表时遇到了一些麻烦.

这些日期字段不可为空,因此这里有关如何设置可为空的日期时间的许多答案都没有帮助.

基本上当我尝试保存具有DateAdded和LastUpdated字段的实体时,我得到一个SqlDateTime溢出异常.我曾经遇到类似的问题,我试图将日期时间字段写入smalldatetime列,更新列上的类型似乎可以解决问题.我的直觉是,它会对表定义或某些类型的不兼容数据类型产生一些问题,而溢出异常则有点笨拙.

我附加了一个表定义和NHibernate试图运行的查询的示例,任何帮助或建议将不胜感激.

CREATE TABLE [dbo].[CustomPages](
    [ID] [uniqueidentifier] NOT NULL,
    [StoreID] [uniqueidentifier] NOT NULL,
    [DateAdded] [datetime] NOT NULL,
    [AddedByID] [uniqueidentifier] NOT NULL,
    [LastUpdated] [datetime] NOT NULL,
    [LastUpdatedByID] [uniqueidentifier] NOT NULL,
    [Title] [nvarchar](150) NOT NULL,
    [Term] [nvarchar](150) NOT NULL,
    [Content] [ntext] NULL
)

exec sp_executesql N'INSERT INTO CustomPages (Title, Term, Content, LastUpdated, DateAdded, StoreID, LastUpdatedById, AddedById, ID) VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8)',N'@p0 
nvarchar(21),@p1 nvarchar(21),@p2 nvarchar(33),@p3 datetime,@p4 datetime,@p5 uniqueidentifier,@p6 uniqueidentifier,@p7 uniqueidentifier,@p8 uniqueidentifier',@p0=N'Size and Colour …
Run Code Online (Sandbox Code Playgroud)

sql-server nhibernate datetime

5
推荐指数
2
解决办法
6756
查看次数