2009-08-08 1 views
0

Мне только что пришлось использовать LINQ to SQL в базе данных SQL 2000, и я заметил, что он не включает в себя все действия «Определения метода расширения», почему это так?LINQ to SQL и SQL 2000 - Метод расширяемости Определения ушли

+0

и вы просите нас угадать, что было в голове диспетчера программ? –

ответ

1

Что именно не хватает? Что вы видите (или нет)?

В частности, LINQ к SQL стратегии для базы данных (то есть, как сделать подкачки и т.д. на SQL2000 против SQL2005 и т.д.) выбирается в выполнения на основе соединения и конкретного сервера (поэтому он автоматически обновляется, когда вы установите SQL Server 2008).

Генерация кода основана только на dbml, который не заботится о версии сервера (это просто xml - посмотрите).

Если вам не хватает partial методов, задаюсь вопросом, не случайно ли вы удалили partial class es из созданных dbml-объектов, возможно, изменив пространство имен или их имена.

+0

У меня есть одна и та же таблица в двух разных базе данных SQL 2000 и SQL 2008, и вот результирующий сгенерированный код, вы заметите, что в версии SQL 2000 отсутствует область определения метода расширяемости http: // www. bryanavery.co.uk/file.axd?file=2009%2f8%2fDataClasses1.designer.cs Я пробовал делать это на меньшем столе, и, похоже, он работает нормально, так что же не так с этим? – Coppermill

+0

Хорошо, обнаружил, что в моей таблице SQL 2000 не было первичного ключа, и поэтому не были определены определения метода расширяемости. После добавления первичного ключа включаются определения метода расширяемости. – Coppermill

0

По Scott Guthrie:

LINQ к SQL будет поддерживать SQL 2000. Одна особенность, которая требует SQL 2005 является поддержку подкачки на стороне сервера (где вы только сделать подкачки в базе данных ) , Это использует SQL 2005 ROW_NUMBER() функцию, которая только в SQL 2005

+0

Хорошо, это звучит неплохо, поэтому, где есть определения метода расширяемости? – Coppermill

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

  • Нет связанных вопросов^_^