为C#.NET编写typeof(Xml)的正确方法是什么?

时间:2015-07-23 16:50:57

标签: c# .net xml types

我正在创建一个将.NET类型映射到Sql Server类型的字典。我正在使用MSDN's "SQL Server Data Type Mappings" page向我展示正确的转化是什么。在表的底部,它说.NET框架类型是Xml,所以我写道:

{typeof (Xml), "xml"}

作为字典的键值对。但Resharper的Xml为红色,表示无法解析符号。什么是typeof(Xml)的正确陈述?这就是我的字典的其余部分,它没有任何问题:

private static readonly Dictionary<Type, string> SqlServerMap = new Dictionary<Type, string>
{
    {typeof (Int64), "bigint"},
    {typeof (Boolean), "bit"},
    {typeof (Byte[]), "binary"},
    {typeof (Double), "float"},
    {typeof (Int32), "int"},
    {typeof (Decimal), "decimal"},
    {typeof (Single), "real"},
    {typeof (Int16), "smallint"},
    {typeof (DateTime), "date"},
    {typeof (TimeSpan), "time"},
    {typeof (String), "nvarchar"},
    {typeof (Guid), "uniqueidentifier"},
    {typeof (Byte), "tinyint"},
    {typeof (Xml), "xml"}
};

1 个答案:

答案 0 :(得分:2)

要实现从.NET到SQL的XML映射,您需要使用SqlXml类型,因为没有直接的Xml类型。

以下是详细的implementation example from MSDN

当涉及到映射时,如果需要,可以使用类似XDocument等的东西,然后手动将其交换为SqlXml以实现持久性?