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

Entity Framework Discussion :

Problème de migration base sqlite + c# + UWP [Débutant]


Sujet :

Entity Framework

  1. #21
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Est-ce que tu lances ton VS en mode admin ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  2. #22
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 28
    Points
    28
    Par défaut
    Hallelujah!!

    Après une belle traversée à la rame, j'ai enfin trouvé!!!

    Merci à DotNetMatt pour son aide et sa patience....

    1. Créer un nouveau projet > UWP (dans mons cas sous Visual Studio 2017 v15.3.5)
    2. Install-Package Microsoft.EntityFrameworkCore.Sqlite -Version 1.1.1
    3. Install-Package Microsoft.EntityFrameworkCore.Tools -Version 1.1.1
    4. Vérifier que Microsoft.NETCore.UniversalWindowsPlatform est bien en version v5.4.0
    5. Inclure le package: SQLite.Net-PCL
    6. Inclure le package System.Data.SQLite
    7. Créer sa classe MyEntity.cs ATTENTION la classe doit être publique! Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    using SQLite.Net.Attributes;
     
    namespace UWPSQLITEEF0920
    {
        [Table("MyTable")]
        public class MyEntity
        {
            [PrimaryKey, AutoIncrement]
            public int id { get; set; }
            public string MyColumn { get; set; }
            public string YourColumn { get; set; }
     
            public MyEntity()
            {
     
            }
        }
    }
    8. Inclure using SQLite.Net.Attributes; si on utilise les attributs.
    9. Créer sa classe MyContext (publique aussi). C'est la définition du contexte de la base de données.Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    using Microsoft.Data.Sqlite;
    using Microsoft.EntityFrameworkCore;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace UWPSQLITEEF0920
    {
        public class MyContext : DbContext
        {
            // This property defines the table
            public DbSet<MyEntity> MyTable { get; set; }
     
            // This method connects the context with the database
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                var connectionStringBuilder = new SqliteConnectionStringBuilder { DataSource = "uwpTest.sqlite" };
                var connectionString = connectionStringBuilder.ToString();
                var connection = new SqliteConnection(connectionString);
     
                optionsBuilder.UseSqlite(connection);
            }
        }
    }
    10. Les modèles ayant été créés, on peu maintenant créer la base de données. Ouvrir la Console du Gestionnaire de package : Outils / Gestionnaire de package NuGet / Console du Gestionnaire de package
    11. On va utiliser la migration: ADD-MIGRATION MyFirstMigration (choisir un nom par migration).
    IL semblerait que la présence d'un accent dans le path de la base de données empêche la migration (j'ai changé de répertoire pour mon projet et c'est OK, dans mon cas c'était le répertoire "user/stéphane" qui avait une accent)
    12. A partir de là la base est créée, et on peu coder les fichiers App.xaml et App.xaml.cs (vos controllers + vos vues)afin d'exploiter les données en sortie.
    Rajouter dans App.Xaml.cs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public App()
    {
    this.InitializeComponent();
    this.Suspending += OnSuspending;
     
    //Code à rajouter
    using (var db = new MyContext())
    {
    db.Database.Migrate();
    }
    }
    Pour modifier sa Base de donnée à la volée:
    1. par exemple rajouter un champ dans la table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    public string OtherColumn { get; set; }
    ...
    2. On refait une ADD-MIGRATION MySecondMigration et le tour est joué!!
    3. idem pour rajouter une table (nouvelle classe)

    A chaque modification du modèle on doit exécuter ADD-MIGRATION NewNameOfMigration!!!

    SQLite est assez puissant pour une base de données embarquée par exemple, mais il existe certaines limitations (par exemple impossible de renommer une colonne!!)

    https://docs.microsoft.com/en-us/ef/...te/limitations

    Voilou...

    A Noter pour ceux que ça intéresse, la base se trouve à cet endroit sur le PC:
    C:\Users\evonz\AppData\Local\Packages\071696d0-63be-4978-986a-ec7276d3fd4a_h8wydme0da398\LocalState

    Vous pouvez l'ouvrir et la modifier avec le Gestionnaire SQLite de Firefox.

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Points : 28
    Points
    28

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Problème de migration base oracle 32 bits vers base 64 bits
    Par lynxdu37 dans le forum Installation
    Réponses: 7
    Dernier message: 17/04/2012, 11h11
  2. Problème de migration de bases Mysql vers Oracle
    Par mcgiant dans le forum Administration
    Réponses: 0
    Dernier message: 19/06/2009, 17h02
  3. Réponses: 4
    Dernier message: 07/03/2008, 09h40
  4. [Débutant] Problème de Connexion base de données sous Glassfish
    Par kimlee dans le forum Glassfish et Payara
    Réponses: 4
    Dernier message: 20/01/2008, 13h56
  5. [VB6]Débutant - Problèmes de base de données?
    Par steeves5 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/06/2006, 22h05

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