Commit d2ee19c4 authored by Marc Gravell's avatar Marc Gravell

Set the DbType for XmlDocument / XDocument / XElement

parent 66a49521
using System.Xml; using System.Data;
using System.Xml;
using System.Xml.Linq; using System.Xml.Linq;
#if COREFX
using IDbDataParameter = System.Data.Common.DbParameter;
#endif
namespace Dapper namespace Dapper
{ {
internal sealed class XmlDocumentHandler : SqlMapper.StringTypeHandler<XmlDocument> internal abstract class XmlTypeHandler<T> : SqlMapper.StringTypeHandler<T>
{
public override void SetValue(IDbDataParameter parameter, T value)
{
base.SetValue(parameter, value);
parameter.DbType = DbType.Xml;
}
}
internal sealed class XmlDocumentHandler : XmlTypeHandler<XmlDocument>
{ {
protected override XmlDocument Parse(string xml) protected override XmlDocument Parse(string xml)
{ {
...@@ -13,12 +25,12 @@ protected override XmlDocument Parse(string xml) ...@@ -13,12 +25,12 @@ protected override XmlDocument Parse(string xml)
} }
protected override string Format(XmlDocument xml) => xml.OuterXml; protected override string Format(XmlDocument xml) => xml.OuterXml;
} }
internal sealed class XDocumentHandler : SqlMapper.StringTypeHandler<XDocument> internal sealed class XDocumentHandler : XmlTypeHandler<XDocument>
{ {
protected override XDocument Parse(string xml) => XDocument.Parse(xml); protected override XDocument Parse(string xml) => XDocument.Parse(xml);
protected override string Format(XDocument xml) => xml.ToString(); protected override string Format(XDocument xml) => xml.ToString();
} }
internal sealed class XElementHandler : SqlMapper.StringTypeHandler<XElement> internal sealed class XElementHandler : XmlTypeHandler<XElement>
{ {
protected override XElement Parse(string xml) => XElement.Parse(xml); protected override XElement Parse(string xml) => XElement.Parse(xml);
protected override string Format(XElement xml) => xml.ToString(); protected override string Format(XElement xml) => xml.ToString();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment