Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Обзор

В статье описываются следующие о выпуске исправлений:

  • Ошибки, исправленные в пакете исправлений

  • Необходимые условия для установки пакета исправлений

  • Необходимость перезагрузки компьютера после установки пакета исправлений

  • Ли исправление заменено другими исправлениями

  • Ли необходимо внести изменения в реестр

  • Файлы, содержащиеся в пакете исправлений

Симптомы

Рассмотрим следующую ситуацию. Приложение использует Microsoft ADO.NET Entity Framework, включенные в Microsoft платформа.NET Framework 3.5 Пакет обновления 1 для доступа к базе данных Microsoft SQL Server Compact 3.5. В приложении запустите «LINQ to Entities» запрос, использующий параметр строки или двоичный параметр в базе данных. В этом случае появляется следующее сообщение об ошибке при запуске приложения:

Типы данных ntext и image не может использоваться в КОТОРЫХ, HAVING, GROUP BY, или в предложениях, за исключением случаев, когда эти типы данных используются с т или NULL предикатов.

Причина

При использовании параметров для запроса «LINQ to Entities» в приложении нельзя задать тип базы данных. Поставщик SQL Server Compact Entity Framework пытается создать параметр уровня поставщика на основании исходного параметра аспекты сущностной модели данных (EDM). SQL Server Compact не поддерживает тип данных nvarchar(max) или тип данных varbinary(max) . Таким образом когда поставщик выбирает тип данных для параметра типа данных Edm.String или Edm.Binary типа данных, поставщик должен пометить параметра как один из следующих типов данных на основании модели EDM аспекты параметра:

  • Для строкового параметра Поставщик выбирает nvarchar(4000) тип данных или тип данных ntext .

  • Для двоичного параметра Поставщик выбирает varbinary(4000) тип данных или тип данных image .

Если поставщик помечается параметр как nvarchar(4000) тип данных или тип данных varbinary(4000) , возникает ошибка при попытке вставки значения, размер которых превышает 8000 байт. Кроме того Если поставщик помечается как тип данных ntext или тип данных параметра, возникает ошибка при выполнении любой операции равенства, операции группирования или операции сортировки для параметра.

Решение

Сведения об исправлении

Существует исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте это исправление только в тех случаях, когда наблюдается проблема, описанная в данной статье. Это исправление может проходить дополнительное тестирование. Таким образом если вы не подвержены серьезно этой проблеме, рекомендуется дождаться следующего пакета обновления, содержащего это исправление.

Если исправление доступно для скачивания, имеется раздел "Пакет исправлений доступен для скачивания" в верхней части этой статьи базы знаний. Если этот раздел не отображается, обратитесь в службу поддержки для получения исправления.

Примечание. Если наблюдаются другие проблемы или необходимо устранить неполадки, вам может понадобиться создать отдельный запрос на обслуживание. Стандартная оплата за поддержку будет взиматься только за дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Чтобы получить полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос на обслуживание, посетите следующий веб-сайт корпорации Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримечание. В форме "Пакет исправлений доступен для скачивания" отображаются языки, для которых доступно исправление. Если нужный язык не отображается, значит исправление для данного языка отсутствует.

Предварительные условия

Для установки этого исправления необходимо удалить ранее установленного SQL Server Compact 3.5 Пакет обновления 1 для установки MSI-файл, который поставляется с исправления. Если не удалить ранее установленного SQL Server Compact 3.5 Пакет обновления 1, появляется сообщение об ошибке установки о том, что уже установлена более поздняя версия SQL Server Compact. Дополнительные сведения о SQL Server Compact 3.5 Пакет обновления 1 щелкните следующий номер статьи базы знаний Майкрософт:

Описание 955965 Compact 3.5 Пакет обновления SQL Server 1

Сведения о перезагрузке компьютера

Не требуется перезагружать компьютер после установки данного исправления.

Сведения о реестре

Не требуется внесение изменений в реестр.

Сведения о файлах

Данное исправление содержит только файлы, которые необходимы для устранения описанных в этой статье перечислены. Это исправление может содержать не все файлы, которые необходимы для полного обновления продукта до последней сборки.

Английская версия данного исправления содержит атрибуты файла (или более поздние атрибуты файлов), приведенные в следующей таблице. Дата и время для этих файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, откройте вкладку Часовой пояс элемента Дата и время в панели управления.

Имя файла

Версия файла

Размер файла

Дата

Время

Платформа

System.data.sqlserverce.entity.dll

3.5.5692.1

230,480

24-Sep-2008

06:46

x86/x64/IA-64

System.data.sqlserverce.dll

3.5.5692.1

271,440

24-Sep-2008

06:46

x86/x64

Policy.3.5.system.data.sqlserverce.dll

3.5.5692.1

13,392

24-Sep-2008

06:46

x86/x64

Policy.3.5.system.data.sqlserverce.entity.dll

3.5.5692.1

13,392

24-Sep-2008

06:46

x86/x64

Sqlceca35.dll

3.5.5692.1

343,104

24-Sep-2008

08:07

x86

Sqlcecompact35.dll

3.5.5692.1

84,544

24-Sep-2008

08:07

x86

Sqlceer35en.dll

3.5.5692.1

148,032

24-Sep-2008

08:07

x86

Sqlceme35.dll

3.5.5692.1

65,088

24-Sep-2008

08:07

x86

Sqlceoledb35.dll

3.5.5692.1

172,608

24-Sep-2008

08:07

x86

Sqlceqp35.dll

3.5.5692.1

644,160

24-Sep-2008

08:07

x86

Sqlcese35.dll

3.5.5692.1

348,224

24-Sep-2008

08:07

x86

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".

Дополнительные сведения

После установки данного исправления, поставщик не догадаться, тип данных для параметра модели EDM. Строка тип данных или модели EDM. Двоичный тип данных. Обработчик запросов выбирает правильный тип данных для параметра на основе значения или столбца к полному параметра или с которого используется параметр.

Например в следующем запросе Entity SQL, обработчик запросов выбирает тип данных ntext для имени параметра, перед установкой исправления.

String name = "XYZ";var q = from e in nwind.Employees
where e.First_Name = name
select e;

После установки данного исправления для имени параметра выбран тип данных, имя столбца.

Тем не менее в следующем примере «LINQ для сущности» запрос завершится ошибкой, так как параметр name ни пары, ни использовать для любого значения или столбца.

String name = "XYZ";var q = from e in nwind.Employees
select name;

Это исправление также устраняет известную проблему, описанную в документе readme для SQL Server Compact 3.5. Дополнительные сведения содержатся в разделе «SQL Server Compact 3.5 с пакетом обновления 1 среда выполнения проблем для ADO.NET Entity Framework» из следующий веб-узел корпорации Майкрософт:

http://download.microsoft.com/download/2/e/c/2ec70436-aef2-4ccb-93a3-ea2f3e20f77d/ReadmeSSC35.htmЭто исправление устраняет проблему, которая связана с неверные инструкции Transact-SQL, создаются, когда поставщик преобразует скалярные вложенные запросы для применения конструкций.

Примечание. Коррелированные вложенные запросы внутренне преобразуются в скалярных вложенных запросов. Коррелированные вложенные запросы не поддерживаются в данном выпуске. Во время выполнения этих запросов, появляется следующее сообщение об ошибке:

Произошла ошибка при выполнении команды определения. Дополнительные сведения см.

Внутреннее исключение содержит следующее сообщение:

Произошла ошибка при разборе запроса. [.., Маркер в ошибке = AS]

Причина в том, что платформа ADO.NET Entity Framework интерпретирует входного запроса как запрос, который имеет тип объединения CROSS APPLY или тип соединения OUTER APPLY. Если в правой части условие соединения возвращает скалярное значение, объединение преобразуется в скалярный вложенный запрос. Поставщик ADO.NET Entity Framework для SQL Server Compact должен преобразовать в эквивалентный запрос, который имеет тип соединения OUTER APPLY, который поддерживается в SQL Server Compact, скалярным вложенным запросом. Тем не менее в этом выпуске это преобразование не выполняется правильно. Например следующий запрос в этом выпуске возникает ошибка.

C# Sample Application:using (NorthwindEntities nwEntities = new NorthwindEntities())
{
var orders = nwEntities.Employees
.Select(employee => employee.Orders.Max(order => order.Order_ID));
foreach (var order in orders)
{
Console.WriteLine(order.ToString());
}
}

Дополнительные сведения о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:

Новая схема присвоения имен 822499 для программного обеспечения Microsoft SQL Server пакетами обновления

Для получения дополнительных сведений о терминологии обновлений программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:

Описание 824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×