24/07/2008 12:18:12
La version la plus récente de ce fichier est disponible en ligne sur le
L'équipe chargée de la documentation de SQL Server accepte volontiers vos |
Sommaire
1.1 Obtention de SQL Server Compact 3.5 SP1
1.2 Documentation en ligne de SQL Server Compact 3.5
1.3 Microsoft Synchronization Services for ADO.NET
2.0 Systèmes d'exploitation et plateformes pris en charge pour SQL Server Compact 3.5
4.0 Informations complémentaires
4.1 Assistance pour SQL Server Compact 3.5
1.0 Introduction
Microsoft® SQL Server™ Compact 3.5 Service Pack 1 (SP1) est le Service Pack pour SQL Server Compact 3.5. SQL Server Compact 3.5 SP1 est un moteur de base de données en cours de processus de taille compacte qui permet aux développeurs de créer des applications fiables pour ordinateurs de bureau Windows et appareils Windows Mobile.
1.1 Obtention de SQL Server Compact 3.5 SP1
SQL Server Compact 3.5 SP1 est installé avec SQL Server 2008 et Visual Studio 2008 SP1, et peut également être téléchargé à partir des sites Web répertoriés ci-dessous :
-
Visual Studio 2008 SP1 est disponible sur le
Centre de téléchargement Microsoft .
-
SQL Server 2008 est disponible sur le
Centre de téléchargement Microsoft .
-
SQL Server Compact 3.5 SP1 est disponible sur le
Centre de téléchargement Microsoft .
-
SQL Server Compact 3.5 SP1 for Devices est disponible sur le
Centre de téléchargement Microsoft . Remarque Le fichier de Windows Installer (.msi) de SQL Server Compact 3.5 SP1 for Devices qui contient les fichiers .cab d'exécution de l'appareil n'est pas installé avec Visual Studio 2008 SP1. Il est disponible sur leCentre de téléchargement Microsoft .
-
Les outils serveur de SQL Server Compact 3.5 SP1 peuvent être téléchargés à partir du
Centre de téléchargement Microsoft .
-
La version 64 bits de SQL Server Compact 3.5 SP1 ne peut être téléchargée sur le Web que sur le
Centre de téléchargement Microsoft .
1.2 Documentation en ligne de SQL Server Compact 3.5 SP1
La documentation en ligne de SQL Server Compact 3.5 SP1 fournit des informations détaillées sur le développement, l'administration et le déploiement de SQL Server Compact 3.5 SP1 sur les ordinateurs Windows et sur les appareils Windows Mobile. La documentation en ligne de SQL Server Compact 3.5 SP1 n'est pas installée avec la documentation en ligne de Visual Studio 2008 SP1 ni de SQL Server 2008, et ne peut être téléchargée sur le Web que sur le
Une fois que vous avez installé la documentation en ligne de SQL Server Compact, elle est accessible dans le menu Démarrer comme une collection d'aide autonome. Pour accéder à cette collection depuis la documentation de Visual Studio 2008 SP1 ou SQL Server 2008 et à l'aide via la touche F1 depuis Visual Studio 2008 SP1 ou SQL Server 2008, vous devez l'ajouter à la collection d'aide combinée de Visual Studio. Pour obtenir des instructions concernant l'ajout de la collection, consultez la section Problèmes connus.
1.3 Microsoft Synchronization Services pour ADO.NET
Microsoft Synchronization Services for ADO.NET permet de synchroniser des données provenant de sources disparates sur des architectures à deux niveaux, à n niveaux et de service.
Pour en savoir plus sur cette technologie, consultez la documentation du produit disponible en ligne sur le
1.4 ADO.NET Entity Framework
SQL Server Compact 3.5 SP1 prend en charge ADO.NET Entity Framework. Entity Framework vous permet d'utiliser des données sous la forme de propriétés et d'objets spécifiques aux domaines, tels que des clients et des adresses de clients, sans qu'il soit nécessaire de vous préoccuper des tables et des colonnes de base de données sous-jacentes dans lesquelles sont stockées ces données. Pour en savoir plus sur cette technologie, consultez la documentation
2.0 Systèmes d'exploitation et plateformes pris en charge pour SQL Server Compact 3.5 SP1
Cette version de SQL Server Compact 3.5 SP1 prend en charge les systèmes d'exploitation suivants.
Ordinateurs de bureau Windows
-
Microsoft Windows XP Professionnel SP3
-
Microsoft Windows XP Édition familiale SP3
-
Microsoft Windows XP Édition Media Center 2004 SP3
-
Microsoft Windows XP Édition Media Center 2005
-
Microsoft Windows XP Édition Tablet PC SP3
-
Microsoft Windows XP Embedded SP3
-
Microsoft Windows XP Professionnel 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 Édition Familiale Basique SP1
-
Windows Vista Édition Familiale Premium SP1
-
Windows Vista Professionnel SP1
-
Windows Vista Entreprise SP1
-
Windows Vista Édition Intégrale SP1
-
Windows Vista Starter Edition SP1
-
Windows Vista Édition Familiale Basique x64 SP1
-
Windows Vista Édition Familiale x64 SP1
-
Windows Vista Professionnel x64 SP1
-
Windows Vista Enterprise x64 SP1
-
Windows Vista Édition Intégrale x64 SP1
-
Windows Server 2008 Standard Server
-
Windows Server 2008 Standard Server (sans Hyper-V)
-
Windows Server 2008 Enterprise
-
Windows Server 2008 Enterprise (sans Hyper-V)
-
Windows Server 2008 Datacenter
-
Windows Server 2008 Datacenter (sans Hyper-V)
-
Windows Server 2008 Web Edition
-
Windows Server 2008 Standard Server x64
-
Windows Server 2008 Standard Server x64 (sans Hyper-V)
-
Windows Server 2008 Enterprise x64
-
Windows Server 2008 Enterprise x64 (sans Hyper-V)
-
Windows Server 2008 Datacenter x64
-
Windows Server 2008 Datacenter x64 (sans Hyper-V)
-
Windows Server 2008 Web Edition x64
Appareils Windows Mobile
-
Windows CE 4.2
-
Windows CE 5.0
-
Windows CE 6.0
-
Windows Mobile 2003 pour Pocket PC
-
Windows Mobile 5.0
-
Windows Mobile 6.0
3.0 Problèmes connus
-
La documentation en ligne de SQL Server Compact 3.5 SP1 et Microsoft Synchronization Services for ADO.NET ne peuvent être téléchargés sur le Web que sur le
Centre de téléchargement Microsoft et ne sont pas livrés avec Visual Studio 2008 SP1 ni SQL Server 2008. Pour accéder à ces collections depuis la documentation de Visual Studio 2008 SP1 ou SQL Server 2008 et à l'aide via la touche F1 depuis Visual Studio 2008 SP1 ou SQL Server 2008, vous devez les ajouter à la collection d'aide combinée de Visual Studio et SQL Server. Pour ce faire, téléchargez la documentation en ligne de SQL Server Compact 3.5 SP1 et Microsoft Synchronization Services for ADO.NET. Après avoir téléchargé et installé les documentations en ligne de SQL Server Compact 3.5 SP1 et de Microsoft Synchronization Services for ADO.NET, fermez toutes les instances de la collection d'aide combinée de Visual Studio/SQL Server et Visual Studio 2008/SQL Server 2008. Lorsque vous rouvrez la collection d'aide combinée, les documentations en ligne de SQL Server Compact 3.5 SP1 et de Microsoft Synchronization Services for ADO.NET deviennent disponibles dans le sommaire, l'index, la fonction de recherche et l'aide via la touche F1 de l'application pour le code et l'interface utilisateur.
-
Le fichier de Windows Installer de SQL Server Compact 3.5 SP1 for Devices n'est pas installé avec Visual Studio 2008 SP1. Le fichier ne peut être téléchargé sur le Web que sur le
Centre de téléchargement Microsoft .
-
La mise à niveau vers SQL Server Compact 3.5 ou SQL Server Compact 3.5 SP1 à partir des versions CTP ou bêta de SQL Server Compact 3.5 n'est pas prise en charge. La mise à niveau à partir de la version bêta de SQL Server Compact 3.5 ou SQL Server Compact 3.5 SP1 vers SQL Server Compact 3.5 SP1 n'est pas prise en charge.
La mise à niveau à partir des versions CTP (Community Technology Preview) et bêta de SQL Server Compact 3.5 vers la version finale n'est pas prise en charge. La désinstallation de la version CTP ou bêta de Visual Studio 2008 ne désinstalle pas SQL Server Compact 3.5. Vous devez supprimer manuellement les installations CTP ou bêta de SQL Server Compact 3.5 avant de pouvoir installer la version finale de Visual Studio 2008, comme suit :
-
Désinstallez la version CTP ou bêta de Visual Studio 2008.
-
Sous Windows Vista, cliquez sur Démarrer, puis sur Panneau de configuration. Double-cliquez sur Programmes et fonctionnalités. Désinstallez toutes les installations CTP et bêta de SQL Server Compact 3.5, SQL Server Compact 3.5 for Devices et des outils de conception de SQL Server Compact 3.5.
-
Sous Windows XP ou Windows Server 2003, cliquez sur Démarrer, puis sur Panneau de configuration. Double-cliquez sur Ajout/Suppression de programmes. Désinstallez toutes les installations CTP et bêta de SQL Server Compact 3.5, SQL Server Compact 3.5 for Devices et des outils de conception de SQL Server Compact 3.5.
-
Désinstallez la version CTP ou bêta de Visual Studio 2008.
-
SQL Server Compact 3.5 SP1 n'est pas désinstallé lorsque Visual Studio 2008 SP1 est désinstallé.
La désinstallation de Visual Studio 2008 SP1 ne désinstalle pas automatiquement les outils de conception SQL Server Compact 3.5 SP1 et SQL Server Compact 3.5 SP1. Si vous souhaitez revenir à l'installation de Visual Studio 2008, vous devez d'abord désinstaller les outils de conception SQL Server Compact 3.5 SP1 et SQL Server Compact 3.5 SP1 manuellement. Vous devez ensuite installer les outils de conception SQL Server Compact 3.5 et SQL Server Compact 3.5 à partir du support d'installation de Visual Studio 2008.
Vous pouvez rechercher et installer les fichiers de Windows Installer pour SQL Server Compact 3.5 (SSCERuntime-<FRA>.msi) et pour les outils de conception SQL Server Compact 3.5 (SSCEVSTools-<FRA>.msi) à partir du dossier WCU\SSCE sur le support d'installation de Visual Studio 2008.
-
Si vous choisissez l'option de réparation lors de l'installation de SQL Server 2008, les outils de requête de SQL Server Compact 3.5 SP1 ou SQL Server Compact 3.5 Service Pack 1 (SP1) ne sont pas réinstallés automatiquement.
Vous pouvez rechercher et installer les fichiers de Windows Installer pour SQL Server Compact 3.5 SP1 (SSCERuntime-<FRA>.msi) et pour les outils de requête SQL Server Compact 3.5 SP1 (SSCESqlWbTools-<FRA>.msi) à partir du dossier Servers\Setup sur le support d'installation de SQL Server.
-
Une exception se produit lors de l'utilisation de SQL Server 2008 Management Studio si SQL Server Compact 3.5 SP1 n'est pas installé.
Si SQL Server Compact SP1 n'est pas installé lors de l'utilisation de SQL Server 2008 Management Studio, une exception se produit. Pour résoudre ce problème, installez Microsoft SQL Server Compact 3.5 SP1 à partir du support d'installation de SQL Server 2008 ou duCentre de téléchargement Microsoft .
-
Le fichier MSI des outils serveur de SQL Server Compact 3.5 SP1 (x86) ne reconnaît pas les services IIS (Internet Information Services) installés sur les systèmes d'exploitation Vista (x64) ou Windows 2008 Server.
Pour résoudre ce problème, installez d'abord les composants de compatibilité IIS 6.0. Pour plus d'informations sur l'installation des composants de compatibilité IIS 6.0, consultezComposant de compatibilité IIS 6 non installé . Ensuite, sous la clé de Registre HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\InetStp, remplacez la valeur de MajorVersion par 6. Enfin, installez les outils serveur de SQL Server Compact 3.5 SP1 (x86) et réaffectez à MajorVersion la valeur 7.
-
Après l'installation des fichiers d'exécution de l'appareil SQL Server Compact 3.5 SP1, tout projet « Smart Device » qui fait référence à l'assembly System.Data.SqlServerCe.dll et qui a été créé par Visual Studio 2008 SP1 ou Visual Studio 2008 ne peut pas être ouvert dans les deux versions. En effet, les versions d'assemblys de System.Data.SqlServerCe.dll dans SQL Server Compact 3.5 SP1 (3.5.1.0) et SQL Server Compact 3.5 (3.5.0.0) sont différentes. La liste suivante décrit des scénarios et solutions possibles :
-
Scénario 1 :
Créez d'abord un projet « Smart Device » à l'aide de Visual Studio 2008 et assurez-vous qu'il fait référence à l'assembly System.Data.SqlServerCe.dll. Installez ensuite Visual Studio 2008 SP1 et les fichiers d'exécution de l'appareil SQL Server Compact 3.5 SP1.
Enfin, ouvrez et générez le projet. Lorsque vous générez le projet, l'erreur suivante s'affiche : « Cette opération requiert une référence à SQL Server Compact 3.5 ». Le projet contient une référence à une version différente. Mettez à niveau la référence et réessayez. » En effet, la version de l'assembly System.Data.SqlServerCe.dll référencé dans le projet est différente de celle présente sur l'ordinateur.
Pour résoudre ce problème, ouvrez d'abord l'Explorateur de solutions dans le menu Affichage. Cliquez sur Références et sélectionnez l'assembly System.Data.SqlServerCe. Dans la fenêtre Propriétés, affectez False à la propriété Version spécifique. Notez que cette solution ne requiert pas la mise à jour de la version d'assembly de System.Data.SqlServerCe.dll lors de l'ouverture de ce projet avec les versions Visual Studio 2008 et Visual Studio 2008 SP1.
-
Scénario 2 :
Installez d'abord Visual Studio 2008 et les fichiers d'exécution de l'appareil SQL Server Compact 3.5. Ouvrez ensuite un projet « Smart Device » créé précédemment sur un ordinateur avec Visual Studio 2008 SP1 et les fichiers d'exécution de l'appareil SQL Server Compact 3.5 SP1. Enfin, générez le projet. La génération réussit. Toutefois, l'erreur suivante s'affiche lors du débogage de l'application : « DLL PInvoke 'sqlceme35.dll' introuvable ». Cela est dû au fait que le projet a une copie locale de l'assembly System.Data.SqlServerCe.dll avec la version 3.5.1.0, mais les fichiers natifs dépendants, y compris sqlceme35.dll, ne figurent pas sur l'ordinateur.
Pour résoudre ce problème, ouvrez d'abord l'Explorateur de solutions dans le menu Affichage. Cliquez sur Références et sélectionnez l'assembly System.Data.SqlServerCe. Dans la fenêtre Propriétés, affectez False à la propriété Copie locale. Supprimez ensuite l'assembly System.Data.SqlServerCe.dll du dossier local du projet. Cliquez sur Références, sélectionnez l'assembly System.Data.SqlServerCe, puis cliquez avec le bouton droit sur Supprimer. Cliquez à nouveau sur Références, cliquez avec le bouton droit et sélectionnez Ajouter une référence. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet .NET, sélectionnez System.Data.SqlServerCe dans la liste Nom du composant, puis cliquez sur OK.
-
Scénario 1 :
-
Les contraintes par défaut sont répliquées « en l'état » lors de la réplication d'une colonne de type geometry vers l'abonné SQL Server Compact. Pour résoudre ce problème, effectuez l'une des opérations suivantes :
-
Ne répliquez pas les contraintes par défaut pour l'article en désactivant l'option de schéma associée.
-
Supprimez la contrainte par défaut de la table avant publication.
-
Spécifiez la valeur par défaut en tant que littéral et non comme fonction géométrique.
-
Ne répliquez pas les contraintes par défaut pour l'article en désactivant l'option de schéma associée.
-
SQL Server Compact 3.5 SP1 n'utilise pas la propriété Encrypt de la classe SqlCeConnection.
La propriété Encrypt de la classe SqlCeConnection ne doit pas être utilisée.
Remarque : la propriété Encrypt sera abandonnée dans une version ultérieure. La propriété est conservée dans SQL Server Compact 3.5 SP1 uniquement à des fins de compatibilité descendante.
Utilisez la propriété Encryption Mode de la classe SqlCeConnection pour chiffrer les fichiers de base de données SQL Server Compact 3.5 SP1 L'exemple suivant montre comment créer une base de données SQL Server Compact 3.5 SP1 chiffrée :
C# :
Visual Basic :SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;"); engine.CreateDatabase();
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;") engine.CreateDatabase()
-
Lors de la mise à niveau de Visual Studio 2005 vers Visual Studio 2008, la base de données SQL Server Compact chiffrée n'est pas mise à niveau et les applications ClickOnce doivent être republiées.
Les fichiers de base de données (*.sdf) créés par des versions antérieures de SQL Server Compact ne sont pas compatibles avec SQL Server Compact 3.5 SP1. Seuls les fichiers de base de données non chiffrés de versions antérieures de SQL Server Compact sont mis à niveau lors de la mise à niveau d'un projet Visual Studio 2005 vers Visual Studio 2008. Les fichiers de base de données chiffrés doivent être mis à niveau manuellement. Si le projet Visual Studio 2005 utilise ClickOnce pour publier des applications, l'application doit être republiée une fois le projet mis à niveau dans Visual Studio 2008.
Les fichiers de base de données chiffrés peuvent être mis à niveau manuellement selon les étapes suivantes :
-
Cliquez sur Données.
-
Cliquez sur Ajouter une nouvelle source de données.
-
Cliquez sur Ajouter une connexion.
Si un fichier de base de données d'une version antérieure est ouvert, un message s'affiche. Si vous cliquez sur OK, la boîte de dialogue Mettre à niveau vers une base de données SQL Server Compact 3.5 apparaît.
Sinon, l'API SqlCeEngine.Upgrade peut être utilisée pour les scénarios de programmation. Voici un exemple de code :
C# :
Visual Basic :SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;"); engine.Upgrade ("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;") engine.Upgrade("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
-
Cliquez sur Données.
-
Les types de données SQL Server Compact 3.5 SP1 pour les paramètres comme SqlDbType et DbType doivent être définis explicitement.
Si les types de données pour les paramètres tels que SqlDbType et DbType ne sont pas définis explicitement, un moteur de base de données peut essayer de deviner le type de données le plus approprié pour ce paramètre. Cette supposition peut s'avérer inexacte, en particulier pour les types de données String et Binary qui ne sont pas de longueur fixe (y compris les objets volumineux), par exemple nvarchar, ntext, varbinary et image. Dans de tels cas, une exception peut être levée.
Pour résoudre ce problème, nous vous conseillons vivement de spécifier les types de données des paramètres pour les types de données String et Binary qui ne sont pas de longueur fixe. Voici un exemple de code :
C# :
Visual Basic :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();
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()
-
Les fichiers de base de données (.sdf) SQL Server Compact 3.5 SP1 peuvent être ouverts à la fois par SQL Server Compact 3.5 et SQL Server Compact 3.5 SP1. Toutefois, dans certains cas, la compatibilité du format d'un fichier de base de données est limitée :
-
Une base de données qui respecte la casse créée par SQL Server Compact 3.5 SP1 ne peut pas être ouverte ni reconnue par SQL Server Compact 3.5. Notez que les classements respectant la casse sont disponibles à compter de la version SQL Server Compact 3.5 SP1.
-
Le même fichier de base de données ne peut pas être ouvert simultanément par SQL Server Compact 3.5 Runtime et SQL Server Compact 3.5 SP1 Runtime.
-
Une base de données qui respecte la casse créée par SQL Server Compact 3.5 SP1 ne peut pas être ouverte ni reconnue par SQL Server Compact 3.5. Notez que les classements respectant la casse sont disponibles à compter de la version SQL Server Compact 3.5 SP1.
-
Dans cette version, les requêtes en cours d'exécution qui incluent LEFT OUTER JOIN avec une constante comme opérande de gauche ne retournent pas de résultats corrects. Cela est dû au fait que SQL Server Compact n'évalue pas correctement ces requêtes. Voici un exemple d'une telle requête :
SELECT * FROM table1 LEFT OUTER JOIN table2 ON 1 = table1.column1
La requête LINQ to Entities suivante contient également une valeur de constante comme fonction de sélecteur de clés dans la méthode GroupBy. Cette requête est convertie en LEFT OUTER JOIN avec une constante comme opérande de gauche en interne et retourne une valeur incorrecte :
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); } } }
-
Problèmes liés à SQL Server Compact 3.5 SP1 Runtime pour ADO.NET Entity Framework.
-
Les sous-requêtes corrélées, qui sont converties en sous-requêtes scalaires en interne, ne sont pas prises en charge dans cette version. Pour de telles requêtes, le message d'erreur suivant s'affiche : « Une erreur s'est produite lors de l'exécution de la définition de la commande. Pour plus de détails, consultez l'exception interne. » L'exception interne contient le message suivant : « Une erreur s'est produite lors de l'analyse de la requête. [.., Token in error = AS ]".
Cela est dû au fait qu'Entity Framework interprète la requête d'entrée comme une requête avec les types de jointures CROSS APPLY ou OUTER APPLY. Si le côté droit de la condition de jointure retourne une valeur scalaire, la jointure est convertie en une sous-requête scalaire. Le fournisseur Entity Framework pour SQL Server Compact doit convertir cette sous-requête scalaire en requête équivalente avec le type de jointure OUTER APPLY, qui est pris en charge par SQL Server Compact. Toutefois, dans cette version, cette conversion n'est pas effectuée correctement. Par exemple, la requête suivante génère une erreur dans cette version :
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()); } }
-
Une exception de violation d'accès se produit lors de l'exécution d'une requête Entity Framework si la requête principale et la sous-requête incluent toutes deux un mot clé DISTINCT et qu'une condition de jointure est indiquée avec une clause OUTER JOIN. Par exemple, la requête suivante crée une violation d'accès :
SELECT DISTINCT [o].[CustomerID] FROM (SELECT DISTINCT * FROM [Orders]) AS [o] LEFT OUTER JOIN [Customers] AS [c] ON [o].[CustomerID] = [c].[CustomerID]
-
Les sous-requêtes corrélées, qui sont converties en sous-requêtes scalaires en interne, ne sont pas prises en charge dans cette version. Pour de telles requêtes, le message d'erreur suivant s'affiche : « Une erreur s'est produite lors de l'exécution de la définition de la commande. Pour plus de détails, consultez l'exception interne. » L'exception interne contient le message suivant : « Une erreur s'est produite lors de l'analyse de la requête. [.., Token in error = AS ]".
5.0 Informations complémentaires
Cette section décrit comment obtenir de l'assistance et formuler des commentaires à propos de SQL Server Compact.
5.1 Assistance pour SQL Server Compact
Pour plus d'informations, consultez le forum
5.2 Commentaires à propos de SQL Server Compact
Pour envoyer des suggestions et des rapports de bogues sur SQL Server Compact :
-
Formulez des suggestions et créez des rapports de bogues sur les fonctions ou l'interface utilisateur de SQL Server Compact sur le site Web
MSDN Product Feedback Center (en anglais).
-
Envoyez vos suggestions ou signalez des erreurs dans la documentation en utilisant la fonctionnalité de commentaires dans la documentation en ligne de SQL Server Compact.