Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

摘要

本文會說明下列有關此 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描述

Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×