ВИПРАВЛЕННЯ: Повідомлення про помилку під час запуску запиту "LINQ організації", який використовує рядковий параметр, або двійковий параметр даних SQL Server Compact-3.5: "де n-текст та зображення типи даних не можна використовувати з, групи, на або in...

Застосовується до: Microsoft SQL Server Compact 3.5

Загальні відомості


У статті описано нижче, про це виправлення, випуск.
  • Проблеми, які входять до пакета виправлень
  • Необхідні умови для інсталяції пакета виправлень
  • Чи потрібно перезавантажувати комп'ютер після інсталяції пакета виправлень
  • Чи замінюється пакет виправлень пакет виправлень іншим
  • Чи потрібно вносити зміни до реєстру
  • Файли, що містяться в пакеті виправлень

Причини


Розглянемо наведений нижче випадок. Застосунок використовує, Framework ADO.NET особою з боку Майкрософт, який входить до складу Microsoft .NET Framework 3.5 пакет оновлень 1 для доступу до бази даних Microsoft SQL Server Compact-3.5. У програмі запуску "LINQ організації" запит, який використовує рядковий параметр, або двійковий параметр до бази даних. У цій ситуації з'являється таке повідомлення про помилку під час запуску застосунку:
N-текст та зображення типи даних, не можна використовувати, HAVING, групи, на чи речення, окрім випадку, коли у даних, які використовуються з як, або є NULL предикати.

Причина


Під час використання параметрів запиту в застосунку "LINQ організації", не можна вказати тип бази даних. Постачальник SQL Server Compact Framework сутності, намагається створити параметр постачальника, рівень, на основі вихідного параметра аспекти сутності модель даних (EDM). SQL Server Compact не підтримує тип даних nvarchar(max) або varbinary(max) тип даних. Таким чином, коли службу, вибирає тип даних для параметра Edm.String тип даних або Edm.Binary тип даних, має позначити параметр – це один із таких типів даних на основі EDM аспекти параметр:
  • Рядковий параметр постачальника виділяє nvarchar(4000) тип даних або ntext тип даних.
  • Двійковий параметр постачальника виділяє varbinary(4000) тип даних або тип даних зображення .
Якщо в постачальника, позначає параметр, який тип даних nvarchar(4000) , або varbinary(4000) тип даних, сталася помилка під час спроби додати значення, розмір якого перевищує 8 000 байт. Крім того, якщо службу, позначає параметр, який тип даних ntext , або тип даних зображення , повідомлення про помилку виникає, якщо в будь-який рівності операцій, групування операцій або сортування операції виконується на параметр.

Вирішення


Відомості про виправлення

Виправлення доступне від корпорації Майкрософт. Проте, це виправлення призначене тільки для вирішення проблеми, описаної в цій статті. Застосовуйте це виправлення лише до систем, які відчувають проблеми, описані в цій статті. Це виправлення може отримати додаткове тестування. Тому, якщо ця проблема не сильно впливає на вас, ми рекомендуємо почекати наступного оновлення програмного забезпечення, що містить це виправлення.

Якщо Виправлення доступне для завантаження, є розділ "Виправлення доступне для завантаження" на початку цієї статті бази знань. Якщо цей розділ не відображається, зверніться до служби підтримки клієнтів Microsoft, щоб отримати виправлення.

Примітка. Якщо виникають додаткові проблеми, або потрібно виявлення проблем, можливо, доведеться створити окремий запит на обслуговування. Звичайні кошти на технічну підтримку будуть застосовуватися для додаткових питань і проблем, які не пов'язані з цим виправленням. Повний список телефонів служби підтримки користувачів і технічної підтримки, або створити окремий запит на обслуговування відвідайте веб-сайт корпорації Майкрософт:Примітка. У формі "Виправлення доступне для завантаження" відображається список мов, для яких це виправлення доступне. Якщо потрібна мова не відображається, то виправлення недоступне для даної мови.

Попередні вимоги

Щоб застосувати це виправлення, потрібно видалити з попередньо інстальовану SQL Server Compact 3.5 Service Pack 1. msi, яка надається встановити це виправлення. Якщо не видалити з попередньо інстальовану SQL Server Compact 3.5 Service Pack 1, з'являється повідомлення про помилку інсталяції, те, що SQL Server Compact новішу версію вже інстальовано. Щоб отримати додаткові відомості про SQL Server Compact 3.5 із пакетом оновлень 1, клацніть номер статті в базі знань Microsoft Knowledge Base:

Опис 955965 SQL Server Compact 3.5 із пакетом оновлень 1

Відомості про перезавантаження

Вам не потрібно перезавантажувати комп'ютер, після застосування цього виправлення.

Інформація про реєстр

Зміни до реєстру не потрібно.

Відомості про файл виправлення

Виправлення, містить лише ті файли, які потрібні для вирішення проблеми, які перелічено в цій статті. Це виправлення може містити не всі файли, потрібні для повного оновлення продукту до останнього випуску.

Англійська версія цього виправлення на комп'ютері має атрибути файлів (або новіші атрибути файлів), подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Переглядаючи відомості про файл, час конвертується у місцевий час. Щоб визначити різницю між UTC і місцевим часом, використайте вкладку Часовий пояс у Дата й час на панелі керування.
Ім'я файлуВерсія файлуРозмір файлуДатаЧасПлатформа
System.data.sqlserverce.entity.dll3.5.5692.1230,48024-Sep-200806:46x86/x64/IA-64
System.data.sqlserverce.dll3.5.5692.1271,44024-Sep-200806:46x86/x64
Policy.3.5.system.data.sqlserverce.dll3.5.5692.113,39224-Sep-200806:46x86/x64
Policy.3.5.system.data.sqlserverce.entity.dll3.5.5692.113,39224-Sep-200806:46x86/x64
Sqlceca35.dll3.5.5692.1343,10424-Sep-200808:07x86
Sqlcecompact35.dll3.5.5692.184,54424-Sep-200808:07x86
Sqlceer35en.dll3.5.5692.1148,03224-Sep-200808:07x86
Sqlceme35.dll3.5.5692.165,08824-Sep-200808:07x86
Sqlceoledb35.dll3.5.5692.1172,60824-Sep-200808:07x86
Sqlceqp35.dll3.5.5692.1644,16024-Sep-200808:07x86
Sqlcese35.dll3.5.5692.1348,22424-Sep-200808:07x86

Стан


Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".

Додаткові відомості


Після застосування цього виправлення, постачальник не здогадуватися тип даних для параметра , EDM. Рядок тип даних або , EDM. Двійковий тип даних. Процесор запит можна вибрати на основі стовпця, який параметр ототожнювати або з, яка використовується параметр або значення параметра, введіть правильні дані.

Наприклад, у такий запит сутності 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 SP1 виконання проблеми для ADO.NET Entity Framework" з такий веб-сайт корпорації Майкрософт:Це виправлення несправностей, які стосуються неправильні оператори Transact-SQL, створені після того, як постачальника, перетворення скалярного вкладені запити, щоб застосувати конструкції.

Примітка. Корелюється-вкладені запити перетворюються скалярного-вкладені запити внутрішньо. У цьому випуску корелюється-вкладені запити не підтримуються. Під час запуску, щоб запит, з'являється таке повідомлення про помилку:
Сталася помилка під час виконання команди визначення. Переглянути внутрішнього винятку, щоб переглянути докладні відомості.
Внутрішній винятків, містить таке повідомлення:
Помилка під час обробки запиту. [..., Маркер помилка = AS]
Причина в тому, що у рамках ADO.NET сутності інтерпретується запиту вводу як запит, який тип об'єднання CROSS застосування або ЗОВНІШНЬОГО застосування тип об'єднання. Якщо справа приєднання до стану, повертає скалярного значення, об'єднання, перетворюється в скалярних вкладений запит. ADO.NET Entity Framework для SQL Server Compact має перетворення, скалярних вкладений запит. відповідний запит, який має ЗОВНІШНЄ застосування приєднання до типу, який підтримує 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 клацніть номер статті в базі знань Microsoft Knowledge Base:

822499 новий присвоєння імен оновленням Microsoft SQL Server, програмне забезпечення, пакетами оновлень

Щоб отримати додаткові відомості про термінологію оновлення програмного забезпечення, клацніть цей номер статті в базі знань Microsoft:
824684 Опис стандартну термінологію, яка використовується для опису оновлень програмних продуктів Майкрософт