XmlToXmlDocumentPropertyHandler

A property handler that maps the SQL Server xml type into an XmlDocument property.

A property handler that maps the SQL Server xml type, which the database returns as a string, into an XmlDocument property.

Overview

Name Description
Class XmlToXmlDocumentPropertyHandler
Namespace RepoDb.PropertyHandlers
Package RepoDb
Implements IPropertyHandler<string, XmlDocument>
Column type The SQL Server xml type, returned by the database as a string
Property type XmlDocument

Conversions

Method Direction Description
Get Database to property Parses the XML text via XmlDocument.LoadXml(). A null or an empty value is returned as null.
Set Property to database Converts the XmlDocument into its XML text via OuterXml. A null value is written as null.

Usability

Bind the handler to the property that maps to an xml column.

Attribute

public class Document
{
    public int Id { get; set; }

    [Map("content"), PropertyHandler(typeof(XmlToXmlDocumentPropertyHandler))]
    public XmlDocument Content { get; set; }
}

Once bound, the library invokes the handler automatically when the property is read or written.

using (var connection = new SqlConnection(connectionString))
{
    var content = new XmlDocument();
    content.LoadXml("<root><item id=\"1\" /></root>");
    connection.Insert(new Document { Id = 1, Content = content });
    var document = connection.Query<Document>(e => e.Id == 1).First();
}

Fluent Mapping

To configure via FluentMapper:

FluentMapper
    .Entity<Document>()
    .PropertyHandler<XmlToXmlDocumentPropertyHandler>(e => e.Content);

Property Level Mapping

To configure via PropertyHandlerMapper:

PropertyHandlerMapper.Add<Document, XmlToXmlDocumentPropertyHandler>(e => e.Content, new XmlToXmlDocumentPropertyHandler(), true);

Type Level Mapping

To apply the handler to every property of the type XmlDocument:

PropertyHandlerMapper.Add<XmlDocument, XmlToXmlDocumentPropertyHandler>(new XmlToXmlDocumentPropertyHandler(), true);

See Also