mirror of
https://github.com/DapperLib/Dapper.git
synced 2026-10-27 11:44:05 +08:00
Set the DbType for XmlDocument / XDocument / XElement
This commit is contained in:
+16
-4
@@ -1,9 +1,21 @@
|
||||
using System.Xml;
|
||||
using System.Data;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
#if COREFX
|
||||
using IDbDataParameter = System.Data.Common.DbParameter;
|
||||
#endif
|
||||
|
||||
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)
|
||||
{
|
||||
@@ -13,12 +25,12 @@ namespace Dapper
|
||||
}
|
||||
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 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 string Format(XElement xml) => xml.ToString();
|
||||
|
||||
Reference in New Issue
Block a user