Hello all, I've been using nhibernate trunk for a while without problems so far.
Two issues that I've found so far are: 1) When trying to serialize the configuration (using a method similar to http://nhforge.org/blogs/nhibernate/archive/2009/03/13/an-improvement-on-sessionfactory-initialization.aspx ) and one of the property mappings is using the 'ReadOnlyAccessor' it throws because that class is not marked as Serializable... I've posted a patch here: http://pastebin.com/Emquf8Jg that adds the serializable attribute to the ReadOnlyAccesor and the private NoopSetter class, and with that, the configuration gets serialized without problems. 2) With Sql Server 2008, (using the 2008 dialect), mapping a TimeSpan property with TimeAsTimeSpan (with the respective time(x) column in the db) works well just for saving/retrieving the value, but as soon as I try to query using that field (I've tried using QueryOver<> / Criteria, ex: .Where(x => x.TimeSpanProperty == TimeSpan.FromDays(1)) or >=, <=, etc, I get db errors like 'time and datetime are incompatible in the greater than or equal to operator.', etc...) the problem is a bug in the .net System.Data.SqlClient.SqlParameter DbType setter (that calls an internal MetaType.GetMetaTypeFromDbType(value);) that sets the SqlDbType to DateTime instead of time... (you can read more about this bug - and it's confirmation - on http://connect.microsoft.com/VisualStudio/feedback/details/381934/sqlparameter-dbtype-dbtype-time-sets-the-parameter-to-sqldbtype-datetime-instead-of-sqldbtype-time ) I wrote a workaround that 'works for me', you can find the patch here (warning: it's as hackish as it can be): http://pastebin.com/S6Tr6Mg0 I think it'd be better to set the dbParam.Size in the SqlClientDriver.cs -> SetDefaultParameterSize or SetParameterSizes methods... etc... It's an ugly workaround but it allows me to save/retrieve & query using that field without problems... I don't know if the NH team is willing to put a workaround in the nh code for that .net bug, or maybe should I try using a IUserType that forces the SqlDbType to Time in the NullSafeSet method... Opinions? Thanks
