24.07.2008 12:18:12

Die aktuelle Version dieser Datei ist online im Microsoft Download Center verfügbar.

Das Dokumentationsteam von SQL Server freut sich über Ihr Feedback zur Dokumentation. Das Team prüft alle Probleme hinsichtlich der Dokumentation, beantwortet jedoch keine technischen Fragen. Hilfe zu technischen Problemen, die nicht im Zusammenhang mit der Dokumentation stehen, finden Sie unter Informationsquellen für SQL Server Compact. Bitte senden Sie Feedback wenn möglich in englischer Sprache.

Inhalt

1.0 Einführung

Microsoft® SQL Server™ Compact 3.5 Service Pack 1 (SP1) ist die Service Pack-Version von SQL Server Compact 3.5. SQL Server Compact 3.5 SP1 ist ein In-Process-Datenbankmodul mit geringem Ressourcenbedarf, mit dem Entwickler stabile Anwendungen für Windows-Desktopcomputer und Windows Mobile-Geräte erstellen können.

1.1 Verfügbarkeit von SQL Server Compact 3.5 SP1

SQL Server Compact 3.5 SP1 wird mit SQL Server 2008 und Visual Studio 2008 SP1 installiert und steht auch unter den folgenden Links als Webdownload zur Verfügung:

1.2 SQL Server Compact 3.5 SP1-Onlinedokumentation

Die SQL Server Compact 3.5 SP1-Onlinedokumentation enthält ausführliche Informationen zur Entwicklung, Verwaltung und Bereitstellung von SQL Server Compact 3.5 SP1 auf Windows-Desktopcomputern und Windows Mobile-Geräten. Die SQL Server Compact 3.5 SP1-Onlinedokumentation wird nicht mit der Visual Studio 2008 SP1-Onlinedokumentation oder der SQL Server 2008-Onlinedokumentation installiert und ist nur als Webdownload im Microsoft Download Center verfügbar.

Nach der Installation der SQL Server Compact-Onlinedokumentation ist diese im Menü Start als eigenständige Hilfesammlung verfügbar. Damit Sie aus der Dokumentation zu Visual Studio 2008 SP1 oder SQL Server 2008 auf diese Sammlung zugreifen und die F1-Hilfe über Visual Studio 2008 SP1 oder SQL Server 2008 aufrufen können, müssen Sie die Sammlung der kombinierten Visual Studio-Hilfesammlung hinzufügen. Anweisungen zum Hinzufügen der Sammlung finden Sie im Abschnitt Bekannte Probleme.

1.3 Microsoft Synchronization Services für ADO.NET

1.4 ADO.NET Entity Framework

2.0 Unterstützte Betriebssysteme und Plattformen für SQL Server Compact 3.5 SP1

Diese Version von SQL Server Compact 3.5 SP1 unterstützt die folgenden Betriebssysteme.

Windows-Desktopcomputer

  • Microsoft Windows XP Professional SP3
  • Microsoft Windows XP Home Edition SP3
  • Microsoft Windows XP Media Center Edition 2004 SP3
  • Microsoft Windows XP Media Center Edition 2005
  • Microsoft Windows XP Tablet PC Edition SP3
  • Microsoft Windows XP Embedded SP3
  • Microsoft Windows XP Professional x64 SP3
  • Windows Embedded for Point of Service SP3
  • Microsoft Windows Server 2003 Standard Edition SP2
  • Microsoft Windows Server 2003 Enterprise Edition SP2
  • Microsoft Windows Server 2003 Datacenter Edition SP2
  • Microsoft Windows Server 2003 R2 Standard Edition
  • Microsoft Windows Server 2003 R2 Enterprise Edition
  • Microsoft Windows Server 2003 R2 Datacenter Edition
  • Microsoft Windows Server 2003 x64 Standard Edition
  • Microsoft Windows Server 2003 x64 Enterprise x64 Edition
  • Microsoft Windows Server 2003 x64 Datacenter Edition
  • Microsoft Windows Server 2003 R2 x64 Standard Edition
  • Microsoft Windows Server 2003 R2 x64 Enterprise Edition
  • Microsoft Windows Server 2003 R2 x64 Datacenter Edition
  • Windows Vista Home Basic SP1
  • Windows Vista Home Premium SP1
  • Windows Vista Business SP1
  • Windows Vista Enterprise SP1
  • Windows Vista Ultimate SP1
  • Windows Vista Starter Edition SP1
  • Windows Vista Home Basic x64 SP1
  • Windows Vista Home Premium x64 SP1
  • Windows Vista Business x64 SP1
  • Windows Vista Enterprise x64 SP1
  • Windows Vista Ultimate x64 SP1
  • Windows Server 2008 Standard Server
  • Windows Server 2008 Standard Server (ohne Hyper-V)
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Enterprise (ohne Hyper-V)
  • Windows Server 2008 Data Center
  • Windows Server 2008 Data Center (ohne Hyper-V)
  • Windows Server 2008 Web Edition
  • Windows Server 2008 Standard Server x64
  • Windows Server 2008 Standard Server x64 (ohne Hyper-V)
  • Windows Server 2008 Enterprise x64
  • Windows Server 2008 Enterprise x64 (ohne Hyper-V)
  • Windows Server 2008 Data Center x64
  • Windows Server 2008 Data Center x64 (ohne Hyper-V)
  • Windows Server 2008 Web Edition x64

Windows Mobile-Geräte

3.0 Bekannte Probleme

  1. Die SQL Server Compact 3.5 SP1-Onlinedokumentation und Microsoft Synchronization Services für ADO.NET sind nur als Webdownload im Microsoft Download Center verfügbar und nicht im Lieferumfang von Visual Studio 2008 SP1 oder SQL Server 2008 enthalten. Damit Sie aus der Dokumentation zu Visual Studio 2008 SP1 oder SQL Server 2008 auf diese Sammlungen zugreifen und die F1-Hilfe über Visual Studio 2008 SP1 oder SQL Server 2008 aufrufen können, müssen Sie die Sammlungen der kombinierten Hilfesammlung von Visual Studio und SQL Server hinzufügen. Hierfür müssen Sie die SQL Server Compact 3.5 SP1-Onlinedokumentation und Microsoft Synchronization Services für ADO.NET herunterladen. Schließen Sie nach dem Herunterladen und Installieren der SQL Server Compact 3.5 SP1-Onlinedokumentation und der Microsoft Synchronization Services für ADO.NET-Onlinedokumentation alle Instanzen der kombinierten Hilfesammlung von Visual Studio und SQL Server sowie Visual Studio 2008 und SQL Server 2008. Wenn Sie die kombinierte Hilfesammlung erneut öffnen, sind die SQL Server Compact 3.5 SP1-Onlinedokumentation und die Microsoft Synchronization Services für ADO.NET-Onlinedokumentation über das Inhaltsverzeichnis, den Index, die Suche, die F1-Hilfe für Code und die Benutzeroberfläche verfügbar.

  2. Die Windows Installer-Datei für SQL Server Compact 3.5 SP1 für Geräte wird nicht mit Visual Studio 2008 SP1 installiert. Die Datei ist nur als Webdownload im Microsoft Download Center verfügbar.

  3. Ein Upgrade auf SQL Server Compact 3.5 oder SQL Server Compact 3.5 SP1 von Betaversionen von SQL Server Compact 3.5 CTP oder SQL Server Compact 3.5 wird nicht unterstützt. Das Upgrade von SQL Server Compact 3.5 oder SQL Server Compact 3.5 SP1 Beta auf SQL Server Compact 3.5 SP1 wird unterstützt.

    Ein Upgrade von der CTP (Community Technology Preview)-Version und den Betaversionen von SQL Server Compact 3.5 auf die endgültige Produktversion wird nicht unterstützt. Bei der Deinstallation der CTP- oder Betaversion von Visual Studio 2008 wird SQL Server Compact 3.5 nicht deinstalliert. Die CTP- oder Betainstallation von SQL Server Compact 3.5 muss vor der Installation der endgültigen Produktversion von Visual Studio 2008 wie folgt manuell entfernt werden:
    1. Deinstallieren Sie die CTP- oder Betaversion von Visual Studio 2008.
    2. Klicken Sie unter Windows Vista auf Start, Systemsteuerung, und doppelklicken Sie dann auf Programme und Funktionen. Deinstallieren Sie alle CTP- und Betainstallationen von SQL Server Compact 3.5, SQL Server Compact 3.5 für mobile Geräte und SQL Server Compact 3.5 Design Tools.
    3. Klicken Sie unter Windows XP oder Windows Server 2003 auf Start, Systemsteuerung, und doppelklicken Sie auf Software. Deinstallieren Sie alle CTP- und Betainstallationen von SQL Server Compact 3.5, SQL Server Compact 3.5 für mobile Geräte und SQL Server Compact 3.5 Design Tools.

  4. SQL Server Compact 3.5 SP1 wird bei der Deinstallation von Visual Studio 2008 SP1 nicht deinstalliert.
    Bei der Deinstallation von Visual Studio 2008 SP1 werden SQL Server Compact 3.5 SP1 Design Tools und SQL Server Compact 3.5 SP1 nicht automatisch deinstalliert. Wenn Sie die Visual Studio 2008-Installation wiederherstellen möchten, müssen Sie zunächst SQL Server Compact 3.5 SP1 Design Tools und SQL Server Compact 3.5 SP1 manuell deinstallieren. Danach müssen Sie SQL Server Compact 3.5 Design Tools und SQL Server Compact 3.5 vom Visual Studio 2008-Installationsmedium installieren.
    Die Windows Installer-Dateien für SQL Server Compact 3.5 (SSCERuntime-<language>.msi) und SQL Server Compact 3.5 Design Tools (SSCEVSTools-<language>.msi) finden Sie im Ordner WCU\SSCE auf dem Visual Studio 2008-Installationsmedium.

  5. Wenn Sie bei der Installation von SQL Server 2008 die Reparaturoption auswählen, werden die SQL Server Compact 3.5 SP1-Abfragetools und SQL Server Compact 3.5 Service Pack (SP1) nicht automatisch erneut installiert.
    Die Windows Installer-Dateien für SQL Server Compact 3.5 SP1 (SSCERuntime-<language>.msi) und die SQL Server Compact 3.5 SP1-Abfragetools (SSCESqlWbTools-<language>.msi) finden Sie im Ordner Servers\Setup auf dem SQL Server-Installationsmedium.

  6. Wenn SQL Server 2008 Management Studio verwendet wird, ohne dass SQL Server Compact 3.5 SP1 installiert ist, wird eine Ausnahme ausgelöst.
    Wenn SQL Server 2008 Management Studio verwendet wird, ohne dass SQL Server Compact SP1 installiert ist, wird eine Ausnahme ausgelöst. Um dieses Problem zu beheben, installieren Sie Microsoft SQL Server Compact 3.5 SP1 vom SQL Server 2008-Installationsmedium oder dem Microsoft Download Center.

  7. Von der MSI-Datei von SQL Server Compact 3.5 SP1 (x86) Server Tools werden auf den Betriebssystemen Vista (x64) und Windows 2008 Server installierte Internetinformationsdienste (IIS) nicht erkannt.
    Um dieses Problem zu beheben, installieren Sie zunächst die Kompatibilitätskomponenten für IIS 6.0. Weitere Informationen über die Installation der Kompatibilitätskomponenten für IIS 6.0 finden Sie unter Kompatibilitätskomponenten für IIS 6. Ändern Sie dann unter dem Registrierungsschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\InetStp den MajorVersion-Wert zu 6. Installieren Sie schließlich die SQL Server Compact 3.5 SP1 (x86) Server Tools, und ändern Sie den MajorVersion-Wert zu 7.

  8. Nach der Installation der SQL Server Compact 3.5 SP1-Gerätelaufzeit können Projekte für "intelligente Geräte", in denen auf die System.Data.SqlServerCe.dll-Assembly verwiesen wird und die mit Visual Studio 2008 SP1 oder Visual Studio 2008 erstellt wurden, nicht mehr geöffnet werden. Entsprechendes gilt auch umgekehrt. Der Grund dafür ist, dass sich die Assemblyversionen von System.Data.SqlServerCe.dll in SQL Server Compact 3.5 SP1 (3.5.1.0) und SQL Server Compact 3.5 (3.5.0.0) unterscheiden. In der folgenden Liste werden mögliche Szenarien und Lösungen beschrieben:
    • Szenario 1:
      Erstellen Sie zunächst ein Projekt für "intelligente Geräte" mithilfe von Visual Studio 2008, und stellen Sie sicher, dass darin auf die System.Data.SqlServerCe.dll-Assembly verwiesen wird. Installieren Sie dann Visual Studio 2008 SP1 und die SQL Server Compact 3.5 SP1-Gerätelaufzeit.
      Öffnen und erstellen Sie schließlich das Projekt. Beim Erstellen des Projekts wird der folgende Fehler angezeigt: "Für diesen Vorgang ist ein Verweis auf SQL Server Compact 3.5 erforderlich. Das Projekt enthält einen Verweis auf eine andere Version. Aktualisieren Sie den Verweis, und wiederholen Sie den Vorgang." Der Grund für diesen Fehler ist, dass die Version der System.Data.SqlServerCe.dll, auf die im Projekt verwiesen wird, sich von der auf dem Computer vorliegenden unterscheidet.
      Um dieses Problem zu beheben, öffnen Sie zunächst im Menü Ansicht den Projektmappen-Explorer. Klicken Sie auf Verweise, und wählen Sie die System.Data.SqlServerCe-Assembly aus. Legen Sie im Fenster Eigenschaften die Eigenschaft Spezifische Version auf False fest. Beachten Sie, dass für diese Projektmappe keine Aktualisierung der Assemblyversion von System.Data.SqlServerCe.dll erforderlich ist, wenn das Projekt zunächst mit Visual Studio 2008 und dann mit Visual Studio 2008 SP1 und umgekehrt geöffnet wird.
    • Szenario 2:
      Installieren Sie zunächst Visual Studio 2008 und die SQL Server Compact 3.5-Gerätelaufzeit. Öffnen Sie dann ein Projekt für "intelligente Geräte", das vorher auf einem Computer mit Visual Studio 2008 SP1 und der SQL Server Compact 3.5 SP1-Gerätelaufzeit erstellt wurde. Erstellen Sie schließlich das Projekt. Der Buildvorgang verläuft erfolgreich. Beim Debuggen der Anwendung wird jedoch folgender Fehler angezeigt: "PInvoke DLL 'sqlceme35.dll' kann nicht gefunden werden". Der Grund dafür ist, dass das Projekt über eine lokale Kopie von System.Data.SqlServerCe.dll der Version 3.5.1.0 verfügt, die abhängigen systemeigenen Dateien einschließlich sqlceme35.dll jedoch nicht auf dem Computer vorhanden sind.
      Um dieses Problem zu beheben, öffnen Sie zunächst aus dem Menü Ansicht den Projektmappen-Explorer. Klicken Sie auf Verweise, und wählen Sie die System.Data.SqlServerCe-Assembly aus. Legen Sie im Fenster Eigenschaften die Eigenschaft Lokale Kopie auf False fest. Entfernen Sie dann die System.Data.SqlServerCe.dll-Assembly aus dem lokalen Ordner des Projekts. Klicken Sie auf Verweise, wählen Sie die System.Data.SqlServerCe-Assembly aus, und klicken Sie dann mit der rechten Maustaste auf Entfernen. Klicken Sie erneut auf Verweise, klicken Sie mit der rechten Maustaste, und wählen Sie Verweis hinzufügen aus. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte .NET, wählen Sie in der Liste Komponentenname den Eintrag System.Data.SqlServerCe aus, und klicken Sie dann auf OK.

  9. Bei der Replikation einer Spalte vom Typ geometry für einen SQL Server Compact-Abonnenten werden die Standardeinschränkungen unverändert repliziert. Um dieses Problem zu beheben, führen Sie eine der folgenden Aktionen aus:
    • Replizieren Sie keine Standardeinschränkungen für den Artikel, indem Sie die Schemaoption für den Artikel deaktivieren.
    • Entfernen Sie die Standardeinschränkung vor dem Veröffentlichen aus der Tabelle.
    • Legen Sie den Standardwert auf ein Literal anstelle einer geometrischen Funktion fest.

  10. SQL Server Compact 3.5 SP1 verwendet die Verschlüsseln-Eigenschaft der SqlCeConnection-Klasse nicht.
    Die Verschlüsseln-Eigenschaft der SqlCeConnection-Klasse sollte nicht verwendet werden.
    Hinweis:
    Die Verschlüsseln-Eigenschaft wird in einer der nächsten Versionen als veraltet erklärt. Die Eigenschaft wird in SQL Server Compact 3.5 SP1 nur aus Gründen der Abwärtskompatibilität beibehalten.


    Verwenden Sie die Verschlüsselungsmodus-Eigenschaft der SqlCeConnection-Klasse, um SQL Server Compact 3.5 SP1-Datenbankdateien zu verschlüsseln. Im folgenden Beispiel wird dargestellt, wie eine neue verschlüsselte SQL Server Compact 3.5 SP1-Datenbank erstellt wird:
    C#:
    SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");
    engine.CreateDatabase();
    Visual Basic:
    Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
    engine.CreateDatabase()
  11. Verschlüsselte SQL Server Compact-Datenbanken werden bei der Aktualisierung von Visual Studio 2005 auf Visual Studio 2008 nicht aktualisiert, und ClickOnce-Anwendungen müssen erneut veröffentlicht werden.

    Mithilfe früherer Versionen von SQL Server Compact erstellte Datenbankdateien (SDF) sind nicht mit SQL Server Compact 3.5 SP1 kompatibel. Nur unverschlüsselte Datenbankdateien früherer Versionen von SQL Server Compact werden aktualisiert, wenn ein Visual Studio 2005-Projekt auf Visual Studio 2008 aktualisiert wird. Verschlüsselte Datenbankdateien müssen manuell aktualisiert werden. Wenn das Visual Studio 2005-Projekt ClickOnce zur Veröffentlichung von Anwendungen verwendet wird, sollte die Anwendung nach der Aktualisierung des Projekts in Visual Studio 2008 erneut veröffentlicht werden.

    Führen Sie die folgenden Schritte aus, um verschlüsselte Datenbanken manuell zu aktualisieren:
    1. Klicken Sie auf Daten.
    2. Klicken Sie auf Neue Datenquelle hinzufügen.
    3. Klicken Sie auf Verbindung hinzufügen.
      Wenn eine frühere Version der Datenbankdatei geöffnet wird, wird eine Meldung angezeigt. Wenn Sie auf OK klicken, wird das Dialogfeld Auf SQL Server Compact 3.5-Datenbank aktualisieren geöffnet.
      Alternativ kann die SqlCeEngine.Upgrade-API für programmgesteuerte Szenarien verwendet werden. Codebeispiel:
      C#:
      SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;");
      engine.Upgrade ("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");
      Visual Basic:
      Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;")
      engine.Upgrade("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
    Wenn das Projekt ClickOnce zur Veröffentlichung von Anwendungen verwendet wird, sollte die Anwendung nach der Aktualisierung auf Visual Studio 2008 erneut veröffentlicht werden. Wenn Sie eine ClickOnce-Anwendung in Visual Studio 2008 erneut veröffentlichen, wird unter Umständen die Warnung angezeigt, dass die erforderliche SQL Server 2005 Compact Edition-Komponente für Bootstrapping nicht gefunden wurde. Die Warnung kann ignoriert werden.

  12. SQL Server Compact 3.5 SP1-Datentypen für Parameter wie SqlDbType und DbType sollten explizit festgelegt werden.

    Wenn die Datentypen für Parameter wie SqlDbType und DbType nicht explizit festgelegt werden, versucht das Datenbankmodul möglicherweise, den am besten geeigneten Datentyp für diesen Parameter selbstständig zu ermitteln. Insbesondere für Zeichenfolgen-Datentypen und binäre Datentypen, deren Länge nicht fest ist (einschließlich großer Objekte), wie nvarchar, ntext, varbinary und image, ist diese Wahl möglicherweise nicht korrekt. In einem solchen Fall kann eine Ausnahme ausgelöst werden.
    Um dieses Problem zu beheben, wird dringend empfohlen, die Datentypen von Parametern für Zeichenfolgen-Datentypen und binäre Datentypen, deren Länge nicht fest ist, festzulegen. Im Folgenden finden Sie ein Codebeispiel:
    C#:
    SqlCeEngine engine = new SqlCeEngine(connString);
    engine.CreateDatabase();
    engine.Dispose();
    
    SqlCeConnection conn = new SqlCeConnection(connString);
    conn.Open();
    
    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "CREATE TABLE BlobTable(nameCol nvarchar(128), blobCol ntext);";
    cmd.ExecuteNonQuery();
    
    cmd.CommandText = "INSERT INTO BlobTable(nameCol, blobCol) VALUES (@nameParam, @blobParam);";
    SqlCeParameter paramName = cmd.Parameters.Add("nameParam", SqlDbType.NVarChar, 128);
    SqlCeParameter paramBlob = cmd.Parameters.Add("blobParam", SqlDbType.NText);
    paramName.Value = "Name1";
    paramBlob.Value = "Name1".PadLeft(4001);
    
    cmd.ExecuteNonQuery();
    Visual Basic:
    Dim engine As SqlCeEngine = New SqlCeEngine(connString)
    engine.CreateDatabase()
    engine.Dispose()
    
    Dim conn As SqlCeConnection = New SqlCeConnection(connString)
    conn.Open()
    
    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "CREATE TABLE BlobTable(nameCol nvarchar(128), blobCol ntext);"
    cmd.ExecuteNonQuery() 
    
    cmd.CommandText = "INSERT INTO BlobTable(nameCol, blobCol) VALUES (@nameParam, @blobParam);"
    Dim paramName As SqlCeParameter
    Dim paramBlob As SqlCeParameter
    paramName = cmd.Parameters.Add("nameParam", SqlDbType.NVarChar, 128)
    paramBlob = cmd.Parameters.Add("blobParam", SqlDbType.NText)
    paramName.Value = "Name1"
    paramBlob.Value = "Name1".PadLeft(4001)
    
    cmd.ExecuteNonQuery()
    
  13. SQL Server Compact 3.5 SP1-Datenbankdateien (SDF) können sowohl mit SQL Server Compact 3.5 als auch mit SQL Server Compact 3.5 SP1 geöffnet werden. In einigen Fällen ist die Kompatibilität des Formats einer Datenbankdatei jedoch eingeschränkt:
    • Eine mit SQL Server Compact 3.5 SP1 erstellte Datenbank, in der die Groß-/Kleinschreibung beachtet wird, kann mit SQL Server Compact 3.5 nicht geöffnet oder erkannt werden. Beachten Sie, dass die Sortierungen, bei denen die Groß-/Kleinschreibung beachtet wird, mit der SQL Server Compact 3.5 SP1-Version eingeführt wurden.
    • Dieselbe Datenbankdatei kann nicht gleichzeitig von der SQL Server Compact 3.5-Laufzeit und der SQL Server Compact 3.5 SP1-Laufzeit geöffnet werden.

  14. Bei der Ausführung von Abfragen, die einen LEFT OUTER JOIN mit einer Konstanten als rechten Operanden enthalten, werden in dieser Version nicht die richtigen Ergebnisse zurückgegeben. Der Grund dafür ist, dass SQL Server Compact solche Abfragen nicht ordnungsgemäß auswertet. Im Folgenden finden Sie ein Beispiel für eine solche Abfrage:
    SELECT * FROM table1 LEFT OUTER JOIN table2 ON 1 = table1.column1

    Die folgende LINQ to Entities-Abfrage enthält ebenfalls einen konstanten Wert als Schlüsselauswahlfunktion in der GroupBy-Methode. Diese Abfrage wird intern in einen LEFT OUTER JOIN mit einer Konstante als linken Operanden umgewandelt und gibt einen falschen Wert zurück:
    C#:
    using (NorthwindEntities nwEntities = new NorthwindEntities())
    {
        var query = nwEntities.Orders.GroupBy(c => 10002, k => k.Order_ID);
        foreach (IGrouping<int, int> orderGroup in query)
        {
            // The result should include 1078 records. 
            // However, in this release it returns only one record. 
            Console.WriteLine("Key: {0}", orderGroup.Key);
            foreach (int order in orderGroup)
            {
                 Console.WriteLine("Result: {0}", order);
             }
       }
    }

  15. SQL Server Compact 3.5 SP1-Laufzeitprobleme für ADO.NET Entity Framework

    1. Korrelierte Unterabfragen, die intern in skalare Unterabfragen umgewandelt werden, werden in dieser Version nicht unterstützt. Bei solchen Abfragen wird die folgende Fehlermeldung angezeigt: "Beim Ausführen der Befehlsdefinition ist ein Fehler aufgetreten. Weitere Informationen finden Sie in der inneren Ausnahme." Die innere Ausnahme enthält die folgende Meldung: "Fehler beim Analysieren der Abfrage. [.., Token in error = AS ]".
      Der Grund dafür ist, dass Entity Framework die Eingabeabfrage als Abfrage mit dem Verknüpfungstyp CROSS APPLY oder OUTER APPLY interpretiert. Wenn die rechte Seite der Verknüpfungsbedingung einen skalaren Wert zurückgibt, wird die Verknüpfung in eine skalare Unterabfrage umgewandelt. Der Entity Framework-Anbieter für SQL Server Compact muss diese skalare Unterabfrage in eine von SQL Server Compact unterstützte gleichwertige Abfrage mit dem Verknüpfungstyp OUTER APPLY umwandeln. Diese Umwandlung funktioniert in dieser Version jedoch nicht ordnungsgemäß. Die folgende Abfrage löst beispielsweise in dieser Version einen Fehler aus:
      C#:
      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());
          }
      }

    2. Beim Ausführen einer Entity Framework-Abfrage wird eine Zugriffsverletzungsausnahme ausgelöst, wenn sowohl die Hauptabfrage als auch die Unterabfrage ein DISTINCT-Schlüsselwort enthalten und die Verknüpfungsbedingung mit einer OUTER JOIN-Klausel festgelegt wird. Die folgende Abfrage führt beispielsweise zu einer Zugriffsverletzung:
      SELECT DISTINCT [o].[CustomerID]
      FROM (SELECT DISTINCT * FROM [Orders]) AS [o]
      LEFT OUTER JOIN [Customers] AS [c] ON [o].[CustomerID] = [c].[CustomerID]
      

5.0 Zusätzliche Informationen