Update: Fehlermeldung beim Ausführen einer Abfrage "LINQ zu Entitäten", verwendet einen Zeichenfolgenparameter oder einen binären Parameter für eine SQL Server Compact 3.5-Datenbank: "die Datentypen Ntext und Image können nicht in WHERE-, verwendet werden HAVING, GROUP BY, ON oder IN Klauseln"

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 958478 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt die folgenden zu dieser Hotfix-Version:
  • Durch das Hotfix-Paket behobene Probleme
  • Voraussetzungen für die Installation des Hotfix-Pakets
  • Gibt an, ob müssen Sie den Computer neu starten nach der Installation des Hotfix-Pakets
  • Gibt an, ob das Hotfix-Paket wird durch ein anderes Hotfixpaket ersetzt
  • Gibt an, ob Sie die Registrierungsänderungen vornehmen müssen
  • In diesem Hotfix-Paket enthaltene Dateien

Problembeschreibung

Stellen Sie sich das folgende Szenario vor. Eine Anwendung verwendet das Microsoft ADO.NET Entity Framework, die in Microsoft .NET Framework 3.5 Service Pack 1 für den Zugriff auf eine Microsoft SQL Server Compact 3.5-Datenbank enthalten ist. In der Anwendung führen Sie eine "LINQ zu Entitäten" Abfrage, die einen Zeichenfolgenparameter oder einen binären Parameter für die Datenbank verwendet. In diesem Szenario wird die folgenden Fehlermeldung, wenn Sie die Anwendung ausführen:
Die Datentypen Ntext und Image können nicht in WHERE, HAVING, GROUP BY, ON oder IN Klauseln, außer wenn diese Datentypen, mit der LIKE verwendet werden oder IS NULL-Prädikaten verwendet werden.

Ursache

Wenn Sie Parameter für eine Abfrage "LINQ zu Entitäten" in einer Anwendung verwenden, können Sie nicht die Basisdatenbank Typen angeben. Der SQL Server Compact Entity Framework-Datenanbieter versucht, einen Anbieter-Level-Parameter basierend auf den Entity Data Model (EDM) Facetten des ursprünglichen Parameters zu erstellen. SQL Server Compact unterstützt nicht den Datentyp nvarchar(max) oder der Datentyp varbinary(max) . Wenn der Anbieter den Datentyp für einen Parameter vom Datentyp edm.String oder des Datentyps edm.Binary auswählt, muss daher der Anbieter den Parameter als eines der folgenden Datentypen basierend auf die EDM-Facets des Parameters zu kennzeichnen:
  • Für einen Zeichenfolgenparameter wählt der Anbieter den Datentyp nvarchar(4000) oder Ntext -Datentyp.
  • Für einen binären Parameter wählt der Anbieter den Datentyp varbinary(4000) oder Image -Datentyp.
Wenn der Anbieter den Parameter als Datentyp nvarchar(4000) oder als Datentyp varbinary(4000) gekennzeichnet ist, tritt ein Fehler beim Einfügen von Werten, die größer als 8000 Bytes sind. Tritt außerdem auf Wenn der Anbieter den Parameter als Datentyp Ntext oder Image -Datentyp markiert, Fehler wenn Gleichheit Operationen, Gruppierungsoperationen oder Sortiervorgänge für den Parameter ausgeführt werden.

Lösung

Hotfix-Informationen

Es ist ein unterstützter Hotfix von Microsoft erhältlich. Der Hotfix ist jedoch nur die Behebung des Problems die in diesem Artikel beschriebene vorgesehen. Installieren Sie diesen Hotfix nur auf Systemen, bei die das in diesem Artikel beschriebene Problem auftritt. Dieser Hotfix kann einem späteren Zeitpunkt zusätzliche Tests unterzogen. Wenn durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfiehlt Microsoft daher, auf die nächste Softwareupdate zu warten, das diesen Hotfix enthält.

Wenn der Hotfix zum Download verfügbar ist, ist ein Abschnitt "Hotfix Download available (Hotfixdownload verfügbar" am oberen Rand dieser Knowledge Base-Artikel. Wenn in diesem Abschnitt nicht angezeigt wird, wenden Sie sich an technischen Kundendienst und Support, um den Hotfix zu erhalten.

Hinweis: Wenn weitere Probleme auftreten oder wenn eine Problembehandlung erforderlich ist, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gelten die für zusätzliche Supportfragen und Probleme, die für diesen speziellen Hotfix nicht qualifizieren. Eine vollständige Liste der technischen Kundendienst und Support-Telefonnummern oder eine separate Serviceanfrage erstellen die folgende Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support
Hinweis: Das Formular "Hotfix Download available (Hotfixdownload verfügbar" zeigt die Sprachen für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist es, da ein Hotfix nicht für diese Sprache zur Verfügung steht.

Voraussetzungen

Um diesen Hotfix installieren, müssen Sie die zuvor installierte SQL Server Compact 3.5 Service Pack 1, installieren die MSI-Datei, die bereitgestellt wird mit diesem Hotfix deinstallieren. Wenn Sie die zuvor installierte SQL Server Compact 3.5 Service Pack 1 nicht deinstallieren, erhalten Sie eine Installation Fehlermeldung, die besagt, dass eine spätere Version des SQL Server Compact bereits installiert ist. Weitere Informationen zu SQL Server Compact 3.5 Service Pack 1 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
955965Beschreibung von SQLServer Compact 3.5 Servicepack 1

Informationen zum Neustart

Sie müssen den Computer nach Installation dieses Hotfixes neu starten.

Informationen zur Registrierung

Sie müssen die Registrierung ändern.

Dateiinformationen

Dieser Hotfix enthält nur die Dateien, die um die Probleme zu beheben, die in diesem Artikel aufgelistet erforderlich sind. Dieser Hotfix enthält möglicherweise nicht alle Dateien, die Sie benötigen, um ein Produkt vollständig auf den neuesten Stand zu aktualisieren.

Die englische Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
System.Data.SqlServerCe.Entity.dll3.5.5692.1230,48024-Sep 200806: 46X 86 / X 64/IA-64
System.Data.SqlServerCe.dll3.5.5692.1271,44024-Sep 200806: 46x 86 / x 64
Policy.3.5.System.Data.SqlServerCe.dll3.5.5692.113,39224-Sep 200806: 46x 86 / x 64
Policy.3.5.System.Data.SqlServerCe.Entity.dll3.5.5692.113,39224-Sep 200806: 46x 86 / x 64
Sqlceca35.dll3.5.5692.1343,10424-Sep 200808: 07X 86
Sqlcecompact35.dll3.5.5692.184,54424-Sep 200808: 07X 86
Sqlceer35en.dll3.5.5692.1148,03224-Sep 200808: 07X 86
Sqlceme35.dll3.5.5692.165.08824-Sep 200808: 07X 86
Sqlceoledb35.dll3.5.5692.1172,60824-Sep 200808: 07X 86
Sqlceqp35.dll3.5.5692.1644,16024-Sep 200808: 07X 86
Sqlcese35.dll3.5.5692.1348,22424-Sep 200808: 07X 86

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Nachdem Sie diesen Hotfix angewendet haben, wird der Anbieter nicht den Datentyp für einen Parameter vom Datentyp EDM.String oder des Datentyps EDM.Binary erraten. Der Abfrageprozessor wählt den richtigen Datentyp für den Parameter basierend auf den Wert oder der Spalte, die der Parameter gleichgesetzt wird oder mit dem der Parameter verwendet wird.

Wählt z. B. in der folgenden Entity SQL-Abfrage der Abfrageprozessor des ntext- Datentyps für Name -Parameter bevor Sie diesen Hotfix anwenden.
String name = "XYZ";
var q = from e in nwind.Employees
           where e.First_Name = name
           select e;
Nachdem Sie diesen Hotfix angewendet haben, wird der Datentyp der Spalte First_name für der Name -Parameter ausgewählt.

Jedoch kann im folgenden Beispiel "LINQ, Entity"-Abfrage, da der Name -Parameter ist weder gleichgesetzt noch mit anderen Wert oder Spalte verwendet.
String name = "XYZ";
var q = from e in nwind.Employees
           select name;
H otfix behebt außerdem ein bekanntes Problem, das für SQL Server Compact 3.5 in der Readme-Dokument beschrieben wird. Weitere Informationen finden Sie im "SQL Server Compact 3.5 SP1 Runtime Probleme für das ADO.NET Entity Framework"-Abschnitt der folgenden Microsoft-Website:
http://download.microsoft.com/download/2/e/c/2ec70436-aef2-4ccb-93a3-ea2f3e20f77d/ReadmeSSC35.htm
Dieser Hotfix behebt das Problem, das Zusammenhang mit falschen Transact­SQL-Anweisungen, die generiert werden, wenn der Anbieter skalare Unterabfragen zuweisen Konstrukte konvertiert.

Hinweis: Korrelierten Unterabfragen werden intern, skalare Unterabfragen konvertiert. Korrelierten Unterabfragen werden in dieser Version nicht unterstützt. Wenn Sie diese Abfragen ausführen, erhalten Sie folgende Fehlermeldung:
Fehler beim Ausführen der Befehl Definition. Finden Sie in der inneren Ausnahme Details.
Die innere Ausnahme enthält die folgende Meldung:
Fehler bei der Analyse der Abfrage. [.., Token in Fehler = AS]
Der Grund ist, dass ADO.NET Entity Framework die Eingabeabfrage als Abfrage interpretiert, die den Verknüpfungstyp CROSS APPLY oder den Verknüpfungstyp OUTER APPLY hat. Wenn rechts neben der Verknüpfungsbedingung einen skalaren Wert zurückgibt, wird die Verknüpfung in eine skalare Unterabfrage konvertiert. Der ADO.NET Entity Framework-Datenanbieter für SQL Server Compact hat, dass skalare Unterabfrage in eine entsprechende Abfrage umwandeln, den Verknüpfungstyp OUTER APPLY besitzt, die von SQL Server Compact unterstützt wird. Allerdings wird in dieser Version diese Konvertierung nicht ordnungsgemäß ausgeführt. Beispielsweise tritt ein Fehler für die folgende Abfrage in dieser Version.
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());
    }
}
Weitere Informationen zum Benennungsschema für SQL Server-Updates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
822499Neues Namensschema für Microsoft SQL Server-Softwareupdate-Paketen
Weitere Informationen zur Terminologie für Softwareupdates finden Sie im folgenden Artikel der Microsoft Knowledge Base:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 958478 - Geändert am: Dienstag, 17. Februar 2009 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server Compact 3.5
Keywords: 
kbmt kbexpertiseadvanced kbfix kbautohotfix kbsurveynew kbqfe kbhotfixserver KB958478 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 958478
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com