IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linq Discussion :

Linq To Entites et bdd .sdf (SQL CE)


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Par défaut Linq To Entites et bdd .sdf (SQL CE)
    Bonsoir à tous,
    Je vous expose mon problème. J'utilises linq to entities pour travailler sur une base SQL CE (donc un fichier .sdf) qui ensuite se synchronise sur la "vraie" BDD sur un serveur. Le problème étant que je ne peux pas insérer de nouveaux objets, quand je fais un appel à SaveChanges(), je me retrouve avec une exception qui ne m'aide pas vraiment(Par contre la modification d'objets existants ne pose pas de problème). Voici le message exact:
    Les clés et les valeurs générées par le serveur ne sont pas prises en charge par SQL Server Compact.
    Voici quelques captures d'écran qui pourront peut-être vous aider à me répondre.
    Merci d'avance.




  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par cr0mat Voir le message
    Voici le message exact:{"Les clés et les valeurs générées par le serveur ne sont pas prises en charge par SQL Server Compact."}
    Ben le message est pourtant assez clair il me semble
    A priori, tu as une colonne auto-générée par la BDD (probablement l'ID), et Linq to Entities ne peut pas le gérer avec SQL Server CE (par contre ça marche avec SQL Server "normal" et d'autres SGBD). Il faut que tu définisses explicitement la valeurs de la colonne.

    La solution la plus simple (je trouve) est de déclarer la colonne ID comme étant de type GUID, et de générer les valeurs avec Guid.NewGuid(). C'est quasiment garanti d'être unique (ça se base, entre autres, sur l'adresse MAC de la machine et l'heure du système)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Par défaut
    En effet tomlev, tu as raison, le fait de passer dans la BDD mon champ ID de type int vers le type uniqueidentifier résout mon problème. C'est quand même embêtant...

  4. #4
    Nouveau candidat au Club
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut
    Bonjour,

    J'ai le même problème que cr0mat, mais ce qui m'embête ce que à part de la création, j'ai aussi un erreur à la suppression. (Les mises à jour fonctionnent correctement). Voici le message:

    Échec de l'opération : impossible de modifier la relation car une ou l'ensemble des propriétés de clé étrangère n'accepte pas les valeurs Null. Lorsqu'une modification est apportée à une relation, une valeur Null est attribuée à la propriété de clé étrangère associée. Si la clé étrangère ne prend pas en charge les valeurs Null, une nouvelle relation doit être définie, une valeur non Null doit être affectée à la propriété de clé étrangère ou l'objet non associé doit être supprimé.
    Note: Derrière cette suppression il y a pas de code, je l'effectue avec la touche Suppr sur un élément de DataGrid bindé au fichier .sdf

    Note 2: Voici le diagramme de classes. L'entité supprimé est OrderLine

    Merci

  5. #5
    Nouveau candidat au Club
    Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Par défaut
    J'ai changé mes clés primaires de Guid à Int et ça marche.

    Je ne me prends plus la tête

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intégrité relationnelle entre plusieurs BDD de SQL-SERVER
    Par Mandotnet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/04/2007, 11h59
  2. restauration BDD sous SQL 2000 Server
    Par ilyassou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/03/2007, 08h30
  3. Réponses: 13
    Dernier message: 27/12/2006, 17h52
  4. PB Accès schémas BDD dans sql server 2005
    Par tikam dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 16/06/2006, 08h42
  5. impossible de conecté un utilisateur a la bdd ms sql
    Par Telorhis dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 10/09/2003, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo