Code First Modeles multi database
Bonjour à tous.
Désolé pour ce titre un peu tordu mais je ne vois rien de mieux concernant mon souci.
J'utilise actuellement CodeFirst pour accéder à une base de donnée Mysql.
J'ai défini, mes modèles, mon contexte, mon unitOfWork, enfin bref tout ce qui est nécessaire pour communiquer avec ma base. Les tests sont ok ça fonctionne très bien.
J'aimerais donc me baser sur mon code pour basculer sur une base SQLite, ceci afin de pouvoir développer sans nécessairement utiliser un serveur Mysql et aussi pour avoir la possibilité de changer de base de donnée quand ça me chante.
VOici un petit exemple centré sur une table :
Modèle :
Code:
1 2 3 4 5 6 7 8 9 10
| public class BordCarte
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Libelle { get; set; }
public BordCarte()
} |
Mapping :
Code:
1 2 3 4 5 6 7 8 9 10
| internal partial class BordCarteMapping : EntityTypeConfiguration<BordCarte>
{
public BordCarteMapping()
{
this.HasKey(t => new { t.Id });
this.ToTable("bord_carte", "sqlite");
this.Property(t => t.Id).HasColumnName("BOC_ID").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.Property(t => t.Libelle).HasColumnName("BOC_LIBELLE").IsRequired();
}
} |
Le souci actuellement est que SQLite ne support que des int64 donc lorsqu'il essaie de mapper la colonne Id, je récupère une exception.
J'aimerais donc avoir votre vision concernant mon souci, mon but est de n'avoir qu'un seul modèle et de ne switcher que la partie mapping, afin de devenir totalement indépendant de la base.
Dois je modifier mon modèle pour prendre en compte les spécificités de SQLIite ?
Puis je intervenir au niveau du mapping pour caster du int32 => int64 ?
Pour le moment je n'ai que ce petit souci, mais en réfléchissant je risque d'être embêté avec le type DateTime, Booléen ...
Mes propos sont peut être un peu confus, j'adapterais donc mon message selon vos questions et suggestions.
Merci d'avance de vos réponses.