Il est possible de fournir une base de données existante avec votre application en l’ajoutant à votre projet et en définissant Content pour Build Action.
Utilisation d’une base de données existante
Le fichier de base de données sera alors déployé avec votre application sur le téléphone, mais il sera placé dans le même dossier que tous les autres contenus statiques de votre application. Celle-ci ne peut effectuer que des lectures sur ce dossier. Autrement dit, vous devez ouvrir la base de données en lecture seule ou la copier vers Isolated Storage avant d’y accéder. Vous trouverez ci-après un exemple de chaîne de connexion pour une base de données fournie avec l’application :
const string ReadOnlyConnection =
« Data Source = ‘appdata:/readonly.sdf’; File Mode = read only; »;
Il est également possible de crypter une base de données LINQ to SQL. Cette opération doit être réalisée à la première création de la base de données et nécessite uniquement de spécifier un mot de passe dans la chaîne de connexion, comme suit :
const string Encrypted = « Data Source = ‘isostore:/securedb.sdf’;
Password=’mypassword’; »;
Pour lire des données dans la base de données, vous pouvez effectuer une itération sur la collection Movies au niveau de MoviesDataContext ou employer LINQ afin de retourner un sous-ensemble de Movies :
var movies = from m in dc.Movies
where m.Year > 2000
orderby m.Name
select m;
Au fil du temps, vos besoins en matière de données peuvent évoluer. Par exemple, vous souhaiterez peut-être ajouter une propriété LengthInMinutes à la classe Movie.
Ajoutez d’abord la propriété concernée à la classe elle-même, de nouveau avec l’attribut Column :
private int? lengthInMinutes;
[Column]
public int? LengthInMinutes
{
get { return lengthInMinutes; }
set
{
if (LengthInMinutes == value) return;
lengthInMinutes = value;
NotifyPropertyChanging(« LengthInMinutes »);
}
}
Au démarrage, vous devez maintenant non seulement détecter l’existence de la base de données, mais aussi sa version. Si la version est inférieure à celle attendue par l’application, vous pouvez apporter les ajustements appropriés en ajoutant des tables, colonnes, index et associations, comme l’illustre le code suivant (il ajoute la colonne LengthInMinutes à la table Movie) :
if (!dc.DatabaseExists()) {
dc.CreateDatabase();
}
else {
DatabaseSchemaUpdater dbUpdater = dc.CreateDatabaseSchemaUpdater();
if (dbUpdater.DatabaseSchemaVersion < 2) {
dbUpdater.AddColumn<Movie>(« LengthInMinutes »);
dbUpdater .DatabaseSchemaVersion = 2;
dbUpdater.Execute();
}
}
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Forum INCYBER : le cybercrime change d’échelle, l’Europe cherche sa riposte
- IA : ne déléguez pas votre cœur de métier à une boîte noire
- Identité de l’IA : 4 priorités pour anticiper plutôt que subir la régulation
- Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
Articles les + lus
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
Adapter la sécurité OT aux réalités de l’industrie
Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
À la une de la chaîne Tech
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
- Adapter la sécurité OT aux réalités de l’industrie
- Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
- Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
