Please navigate to the Jira issue and vote for getting it implemented :) On Mon, Sep 21, 2009 at 9:25 AM, Johannes Gustafsson <[email protected]>wrote:
> This looks interesting. Any chance of it getting committed to the trunk? > Regards, > Johannes > > On Sun, Sep 20, 2009 at 1:19 AM, Mikael Henriksson > <[email protected]>wrote: > >> I recommend you have a look at my blog post : >> http://blog.zoolutions.se/post/2009/08/13/How-to-store-XmlDocument-as-Xml-in-Sql-Server-2005-using-NHibernate.aspx >> <http://blog.zoolutions.se/post/2009/08/13/How-to-store-XmlDocument-as-Xml-in-Sql-Server-2005-using-NHibernate.aspx>and >> download the patch I created : http://nhjira.koah.net/browse/NH-866 >> >> problem is that NHibernate does not support SqlDbType.Xml out of the box >> so you need to download the source code and apply the patch. Then you can >> either use your own or my XmlUserType >> >> >> On Thu, Sep 3, 2009 at 12:20 PM, csetzkorn <[email protected]> wrote: >> >>> >>> I have made a start. >>> >>> Mapping: >>> >>> <class name="X" ... >>> >>> <property name="XML" column="XML"> >>> <type name="a.b.XmlType, a"></type> >>> </property> >>> >>> </class> >>> >>> Code of XmlType below (cobbled together from the Internet). Problem: >>> >>> var cfg = new Configuration(); >>> cfg..Configure(); >>> cfg.AddAssembly("Diseases"); >>> new SchemaUpdate(cfg).Execute(false, true); >>> >>> This works for all other classes (tables appear in db) but not for >>> this class (X). There is no exception as well. >>> >>> Looking forward to any feedback. Thanks. >>> >>> XmlType code: >>> >>> using System; >>> using System.Collections.Generic; >>> using System.Data; >>> using System.Data.Common; >>> using System.Text; >>> using System.Xml; >>> using NHibernate.SqlTypes; >>> using NHibernate.UserTypes; >>> >>> namespace a.b >>> { >>> public class XmlType : IUserType >>> { >>> public new bool Equals(object x, object y) >>> { >>> XmlDocument xdoc_x = (XmlDocument) x; >>> XmlDocument xdoc_y = (XmlDocument) y; >>> return xdoc_y.OuterXml == xdoc_x.OuterXml; >>> } >>> >>> public object Disassemble(object value) >>> { >>> throw new Exception("The method or operation is not >>> implemented."); >>> } >>> >>> public int GetHashCode(object x) >>> { >>> throw new Exception("The method or operation is not >>> implemented."); >>> } >>> >>> public object Replace(object original, object target, object >>> owner) >>> { >>> return original; >>> } >>> >>> public object Assemble(object cached, object owner) >>> { >>> throw new Exception("The method or operation is not >>> implemented."); >>> } >>> >>> public object NullSafeGet(IDataReader rs, string[] names, >>> object owner) >>> { >>> if (names.Length != 1) >>> throw new InvalidOperationException("names array has >>> more than one element. can't handle this!"); >>> XmlDocument document = new XmlDocument(); >>> string val = rs[names[0]] as string; >>> if (val != null) >>> { >>> document.LoadXml(val); >>> return document; >>> } >>> return null; >>> } >>> >>> public void NullSafeSet(IDbCommand cmd, object value, int >>> index) >>> { >>> DbParameter parameter = (DbParameter )cmd.Parameters >>> [index]; >>> if(value == null) >>> { >>> parameter.Value = DBNull.Value; >>> return; >>> } >>> parameter.Value = ((XmlDocument) value).OuterXml; >>> } >>> >>> public object DeepCopy(object value) >>> { >>> XmlDocument other = (XmlDocument) value; >>> XmlDocument xdoc = new XmlDocument(); >>> xdoc.LoadXml(other.OuterXml); >>> return xdoc; >>> } >>> >>> public SqlType[] SqlTypes >>> { >>> get >>> { >>> return new SqlType[] { new SqlXmlType() }; >>> } >>> } >>> >>> public System.Type ReturnedType >>> { >>> get { return typeof(XmlDocument); } >>> } >>> >>> public bool IsMutable >>> { >>> get { return true; } >>> } >>> } >>> >>> public class SqlXmlType : SqlType >>> { >>> public SqlXmlType() : base(System.Data.DbType.Xml) >>> { >>> } >>> } >>> } >>> >>> >>> On Sep 3, 9:14 am, csetzkorn <[email protected]> wrote: >>> > Hi, >>> > >>> > I have a class with a XmlDocument attribute (or XElement I do not >>> > care) which I would like to map to a column of the XML data type in >>> > SQL server 2005. I have done some googeling but did not get anywhere >>> > with the suggested solutions. Is anyone aware of a working/easy >>> > solution to my problem? Thanks a lot in advance. >>> > >>> > Best wishes, >>> > >>> > Christian >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
