我正在创建一个将.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"}
};
答案 0 :(得分:2)
要实现从.NET到SQL的XML映射,您需要使用SqlXml类型,因为没有直接的Xml类型。
以下是详细的implementation example from MSDN。
当涉及到映射时,如果需要,可以使用类似XDocument等的东西,然后手动将其交换为SqlXml以实现持久性?