#sql-server #visual-studio #visual-studio-2008 #linq #types
Вопрос:
Я только что скачал и установил последнюю базу данных Adventure Works из http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=16040 чтобы еще немного поиграть с LINQ, и обнаружил, что есть некоторые типы данных, которые изначально не поддерживаются в Visual Studio 2008. Я получаю сообщение об ошибке «Один или несколько выбранных элементов содержат тип данных, который не поддерживается разработчиком».
Я обнаружил, что в данном случае проблема заключается в типе пространственных данных.
Мои вопросы таковы:
- Какие другие типы данных по своей сути не поддерживаются Visual Studio, которая находится в SQL Serve 2008?
- Почему эти типы не поддерживаются?
Второй вопрос, я думаю, самый загадочный для меня. Я могу понять, почему не все типы данных будут поддерживаться MySQL, Oracle, Postgre SQL и так далее. Я бы подумал, что группа разработчиков SQLServer может предупредить группу разработчиков Visual Studio, ну, вы знаете, крикнуть в коридоре или что-то в этом роде.
Комментарии:
1. просто к вашему сведению, Visual Studio-это просто среда разработки, это . Сетевая структура, определяющая типы данных. Также может помочь, если вы уточните, какой язык используете, хотя это напрямую не влияет на ответы на ваш вопрос.
2. Я не указывал язык, так как в данном случае это было бы неуместно. Я предполагаю, что это будет та же проблема с VB, C#, F#, J#. Тем не менее, спасибо за помощь в разъяснении структуры.
Ответ №1:
Согласно этому сообщению в блоге, это все, кроме пространственных типов (геометрия и география) и типа данных HierarchyID.
А что касается «почему»? Ну, они выпускают поддержку для большинства типов в обновлении, согласно этому блогу, опубликованному ADO.NET команда, но это последняя запись LINQ to SQL. Похоже, сейчас они беспокоятся только о структуре сущностей. Кто знает, увидим ли мы когда-нибудь LINQ для SQL v2?
Ответ №2:
SqlGeography и LINQ для SQL
Проблема: Это случай, когда мы используем типы пространственных данных ( Geometry
, Geography
), поддерживаемые SQL Server 2008 в LINQ to SQL.
Решение: Шаг 1. Создайте представление, основанное на нужной таблице и не включающее неподдерживаемый тип данных (просто включите столбец как: CAST(geography_column AS VARBINARY(MAX))
Шаг 2. Перетащите представление из Server Explorer
/ Database Explorer
в конструктор.