LINQ-to-SQL неподдържан доставчик на данни грешка с SQL Server 2000

Използвах LINQPad за прототипиране на някои заявки срещу база данни SQL 2000 и си помислих, че тъй като използвам вградения доставчик на LINQ към SQL на LINQPad, ще мога да генерирам същия въведен контекст на данни в проект на Visual Studio.

Добавих нова връзка за данни към Visual Studio Server Explorer във VS2010. Това ме принуди да използвам "Microsoft SQL Server (OLE DB)", защото "Microsoft SQL Server (SqlClient)" работи само с SQL 2005 и по-нова версия. След това се опитах да плъзгам таблици върху моята dbml повърхност, но получавам следното съобщение:

Избраният обект(и) използва неподдържан доставчик на данни

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

Правя ли нещо грешно или глупаво (за първи път използвам LINQ to SQL)? Има ли начин да генерирам същите въведени класове данни, които LINQPad може? Този отговор показва, че би трябвало да е възможно.


person Mark Heath    schedule 24.02.2012    source източник
comment
Ами от любопитство, защо активно разработвате нов софтуер, използвайки нови технологии за свързване към SQL Server 2000? SQL 2000 е доста извън основната поддръжка и разликите между него и SQL 2005+ ще ви направят много тромаво да разработвате нов софтуер последователно...   -  person Aaron Bertrand    schedule 24.02.2012
comment
Ние пишем вътрешен инструмент за мигриране на данни от SQL сървър 2000 в друга система. LINQPad направи супер лесно прототипирането на всички заявки, които искахме да използваме, и дори не знаех, че това е SQL сървър 2000, докато не се опитах да направя своя VS проект.   -  person Mark Heath    schedule 24.02.2012


Отговори (2)


Можете да дублирате схемата в кутия SQL 2005/2008 и след това да я използвате, за да създадете въведения DataContext във VS. След като получите въведения DataContext, трябва да можете да му подадете SQL 2000 низ за връзка.

person Joe Albahari    schedule 25.02.2012
comment
благодаря за предложението. В крайна сметка просто направих въведения DataContext във VS2008 - person Mark Heath; 27.02.2012

Изглежда, че това е ограничение на Visual Studio 2010. Ако създадете dbml във Visual Studio 2008, той се свързва към SQL Server 2000 без проблеми и може да създаде LINQ към SQL въведен DataContext.

person Mark Heath    schedule 27.02.2012
comment
Това работи страхотно, но да се налага да намерите копие на Visual Studio 2008 само за да създадете dbml файл, който да използвате във Visual Studio 2010, е просто досадно. Колко лесно би било за Microsoft да остави тази функционалност във VS2k10, просто не го разбирам. - person stephenbayer; 02.05.2012