2015-07-23 2 views
2

Я делаю словарь, который отображает типы .NET для типов серверов Sql. Я использую MSDN's "SQL Server Data Type Mappings" page, чтобы показать, каковы правильные преобразования. В нижней части таблицы он говорит .NET тип рамки Xml, и поэтому я написал:Каков правильный способ записи typeof (Xml) для C# .NET?

{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

На самом деле нет типа .Net для 'Xml'. Возможно, вы можете использовать 'string', но это может помешать вашему словарю. Сказав это, как насчет 'char',' varchar' и 'nchar'? Они также должны быть в вашем списке как 'string'. – DavidG

+0

Ну ладно, спасибо. Хм, как будет работать один-много карточек? Также я использую это сопоставление для создания столбцов, а записи в столбце, как правило, короткие. Я не совсем уверен в различиях между четырьмя. – Drew

ответ

2

сделать отображение из .NET в SQL для XML создается впечатление, что вам нужно использовать тип SQLXML, поскольку не является прямым типом Xml.

Подробнее implementation example from MSDN.

Когда дело доходит до сопоставления, вы можете использовать что-то вроде XDocument и т. Д., Если хотите, а затем вручную поменять его на SqlXml для настойчивости?

+0

Спасибо, я думаю, это сработает. Другой вариант - рассмотреть варианты использования того, что я делаю. Я не уверен, что действительно нужно иметь это сопоставление, поэтому, если это не похоже на то, что я могу просто проигнорировать его вообще. – Drew

+0

Это тоже сработает! Оставляя это, экономит время! –

Смежные вопросы