2

J'ai une base de données SQL Server 2008 qui contient des objets DateTimeOffset. Selon this page,Aucun mappage n'existe à partir de DbType System.DateTimeOffset vers un SqlCeType connu

SQL Server Compact provides support for replicating the new data types in SQL Server 2008 such as date, time, datetime2, datetimeoffset, geography, and geometry. The new data types in SQL Server 2008 are mapped to nchar, nvarchar, image, etc. For more information about data types in SQL Server 2008, see Data Types in SQL Server 2008 Books Online Documentation.

Cependant, lorsque j'utilise le Microsoft Sync Framework et essayer de synchroniser ma base de données SQL Server à SQL Server base de données Compact, je reçois l'erreur suivante:

No mapping exists from DbType System.DateTimeOffset to a known SqlCeType.

Le correspondant La documentation de Microsoft Sync Framework est here. Je suis sur SQL CE 3.5 SP2 et .NET Framework 4.0.

Je suis un peu perdu ici. Qu'est-ce que je fais mal?

Répondre

2

Quelle version d'ADO.NET et .Net Compact Framework utilisez-vous? Le docs for Sync FW v2.0 et v2.1 indiquent que WRT datetimeoffset

If the server provider is hosted on a computer that is running ADO.NET 2.0 SP1, ADO.NET 2.0 SP1 must also be available on the client for conversion to succeed. Automatic conversion of datetimeoffset on the client is not supported by .NET Compact Framework 2.0 SP1 or .NET Compact Framework 3.5.

qui est compatible avec votre erreur.

+0

Je suis en cours d'exécution sur .NET 4.0 Extended (non Profil du client). –

+0

Si vos versions sont toutes en bonne forme, c'est-à-dire par document, cela devrait fonctionner - vous devrez peut-être faire remonter ce problème à Microsoft. D'après ce qui précède, il semble que ce soit un domaine où du travail a pu être fait pour ajouter du soutien, et peut-être que cela ne fonctionne pas correctement. –

+0

Quelques faits supplémentaires - le provisionnement du client à partir du serveur fonctionne correctement, et le code XML stocké dans la base de données mappe ma colonne en tant que nchar (34), ce qui est attendu. C'est seulement quand j'appelle réellement la méthode Synchronize qu'elle obtient cette erreur. –

-1

DateTimeOffset est pas pris en charge - les conversions de type la mention doc sont pour la réplication de fusion, non Sync Framework

+0

Selon http://msdn.microsoft.com/en-us/library/bb726019.aspx, la conversion DateTimeOffset est prise en charge. –