Oka, Do you want me to create an issue for the .net dbtype.time bug or do you consider that it doesn't apply to nh?
In the meanwhile I'll create an issue for the missing serializable attribute on the ReadOnlyAccessor class On Jun 22, 5:07 pm, Fabio Maulo <[email protected]> wrote: > The place for issues and patchs ishttp://216.121.112.228/browse/NH > > On Tue, Jun 22, 2010 at 7:02 PM, Victor H. Maksimenko > <[email protected]>wrote: > > > > > > > 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... > > ) 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/Emquf8Jgthat 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/sql... > > ) > > > 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 > > -- > Fabio Maulo
