Ошибка «неподдерживаемого поставщика данных» LINQ-to-SQL в SQL Server 2000 - PullRequest
2 голосов
/ 24 февраля 2012

Я использовал LINQPad для создания прототипа некоторых запросов к базе данных SQL 2000 и подумал, что, поскольку я использую встроенный в LINQ to SQL поставщик LINQPad, я смог бы создать такой же типизированный контекст данных в проекте Visual Studio.

Я добавил новое подключение для передачи данных в Visual Studio Server Explorer в VS2010. Это заставило меня использовать «Microsoft SQL Server (OLE DB)», потому что «Microsoft SQL Server (SqlClient)» работает только с SQL 2005 и выше. Затем я попытался перетащить таблицы на поверхность dbml, но получаю следующее сообщение:

Выбранный объект (ы) использует неподдерживаемый поставщик данных

Я нашел очень хакерский обходной путь, скопировав dll TypedDataContext, который сама LINQPad встраивает в папку Temp, а также ссылаясь на сам LINQPad.exe (который необходим для базового класса типизированного контекста данных). Но на самом деле я бы предпочел, чтобы LINQ to SQL работал правильно в моем проекте.

Я делаю что-то не так или глупо (я впервые использую LINQ to SQL)? Есть ли способ генерировать те же классы типизированных данных, что и LINQPad? Этот ответ указывает, что это должно быть возможно.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Вы можете продублировать схему в поле SQL 2005/2008, а затем использовать его для создания типизированного DataContext в VS.Получив введенный DataContext, вы сможете передать ему строку подключения SQL 2000.

1 голос
/ 27 февраля 2012

Кажется, что это ограничение Visual Studio 2010. Если вы создаете dbml в Visual Studio 2008, он без проблем подключается к SQL Server 2000 и может создать тип DataContext с типом LINQ to SQL.

...