使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

摘要

本文會說明下列有關此 hotfix 版本︰

  • Hotfix 套件所修正的問題

  • 安裝 hotfix 套件的先決條件

  • 是否必須重新啟動電腦在安裝 hotfix 套件之後

  • 是否 hotfix 套件會取代任何其他 hotfix 套件

  • 您是否必須做的任何登錄變更

  • Hotfix 套件包含的檔案

狀況

請考慮下列案例。應用程式使用 Microsoft ADO.NET Entity Framework 隨附於 Microsoft.NET Framework 3.5 Service Pack 1 存取 Microsoft SQL Server Compact 3.5 資料庫中。在應用程式中,您可以執行 「 LINQ to Entities"查詢字串參數或二進位的參數對資料庫所使用。在這個案例中,您會收到下列錯誤訊息,當您執行應用程式︰

Ntext 與 image 資料型別不能用於何處、 HAVING 」、 「 群組依據],在或是在子句,除了類似搭配使用這些資料型別時,或為 NULL 的述詞。

原因

當您使用應用程式中的"LINQ to Entities 」 查詢的參數時,您無法指定基底的資料庫型別。SQL Server Compact Entity Framework 提供者會嘗試建立提供者層級的參數,根據原始參數的實體資料模型 (EDM) facet。SQL Server 壓縮不支援的nvarchar(max)資料型別或varbinary(max)的資料型別。因此,當提供者選取的資料型別參數的Edm.String資料型別或Edm.Binary的資料型別,提供者來標示參數做為其中一個根據 EDM facet 參數的下列資料類型有︰

  • 字串參數,提供者選取nvarchar(4000)資料型別或ntext資料型別。

  • 二進位的參數,提供者,請選取varbinary(4000)資料型別或image資料型別。

如果提供者將標示為nvarchar(4000)的資料型別,或為varbinary(4000)的資料型別參數,當您嘗試插入大於 8000 個位元組的值時,也會發生錯誤。 此外,如果提供者將標示為ntext資料型別或image資料型別參數,如果執行任何的等號比較作業、 分組作業中或排序作業的參數就會發生錯誤。

解決方案

Hotfix 資訊

支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 hotfix 只適用於發生本文所述之問題的系統。此 hotfix 可能會接受其他測試。因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。

如果 hotfix 可供下載,在此知識庫文件頂端將出現「可用的 Hotfix」區段。如果這個區段沒有出現,請連絡 Microsoft 客戶服務及支援以取得 hotfix。

注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰

http://support.microsoft.com/contactus/?ws=support注意「 下載 Hotfix 」 表單會顯示 hotfix 可用的語言。如果看不到您的語言,是因為未提供該語言的 Hotfix 。

先決條件

若要套用此 hotfix,您必須解除安裝先前安裝的 SQL Server Compact 3.5 Service Pack 1 以安裝此 hotfix 提供.msi 檔案。如果您不是先前安裝的 SQL Server Compact 3.5 Service Pack 1 的解除安裝,您會收到安裝錯誤訊息,指出已安裝 [較新版的 SQL Server 壓縮。如需有關 SQL Server Compact 3.5 Service Pack 1 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文︰

SQL Server Compact 3.5 Service Pack 1 的955965描述

重新啟動資訊

您不必套用此 hotfix 之後,重新啟動電腦。

登錄資訊

您沒有變更登錄。

Hotfix 檔案資訊

此 hotfix 只包含這些檔案所需來修正本文所列的問題。此 hotfix 並未包含您必須將產品完整更新至最新版組建的所有檔案。

此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 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

狀態

Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

更多的資訊

您套用此 hotfix 之後,提供者不會猜測的資料型別參數的EDM。字串的資料型別或EDM。二進位資料型別。查詢處理器會選取正確的資料型別參數根據值或資料行相等的參數,或與使用的參數。

例如,在下列的實體 SQL 查詢中,查詢處理器選取ntext資料型別名稱參數在套用此 hotfix 之前。

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

您套用此 hotfix 之後,名稱參數選取 [ First_Name ] 資料行的資料型別。

不過,在下列範例中,「 LINQ 以實體 」 查詢失敗,因為名稱參數不相等,也不搭配任何其他值或資料行。

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

此 hotfix 也解決已知的問題所述的 SQL Server Compact 3.5 讀我文件。 如需詳細資訊,請參閱 「 SQL Server Compact 3.5 SP1 執行階段問題的 ADO.NET Entity Framework 」 一節的下列 Microsoft 網站︰

http://download.microsoft.com/download/2/e/c/2ec70436-aef2-4ccb-93a3-ea2f3e20f77d/ReadmeSSC35.htm此 hotfix 可以解決問題相關的提供者將轉換套用建構的數值類子查詢時,會產生不正確考慮改用 SQL 陳述式。

注意相關子查詢會在內部轉換成純量的子查詢。此版本中不支援相關的子查詢。當您執行這些查詢時,您會收到下列錯誤訊息︰

執行命令定義時發生錯誤。請參閱內部例外狀況,如需詳細資訊。

內部例外狀況包含下列訊息︰

正在剖析查詢時發生錯誤。[..,語彙基元,錯誤 = AS]

原因是 ADO.NET Entity Framework 會將輸入的查詢解譯成已 CROSS APPLY 聯結型別或外部套用的聯結類型的查詢。如果聯結條件的右邊則會傳回純量值,聯結會轉換成純量子查詢中。SQL Server 壓縮的 ADO.NET Entity Framework 提供者,就必須將該純量子查詢轉換為相等的查詢,有套用的外部聯結類型,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 知識庫 」 中的文件︰

822499新命名的結構描述的 Microsoft SQL Server 軟體更新套件

如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

用來描述 Microsoft 軟體更新標準術語的編號 824684描述

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×