2011-05-02 3 views
6

Je sais qu'ils supportent SQL CE. Je pense qu'ils vont jusqu'à 3,5 ??? Je viens de télécharger CE 4.0 et je voulais le tester dans mon projet, mais je ne peux pas l'obtenir configuré en plein FluentNHibernate ...Est-ce que FluentNHibernate prend en charge SQL Server Compact Edition 4.0?

Si 4.0 est pris en charge:

Quelle version dois-je télécharger et quelqu'un pourrait-il me donner un exemple de la façon de le mettre en œuvre?

Répondre

10

FNH soutient CE 4.0, essayez cette configuration:

var config = Fluently.Configure() 
.Database(MsSqlCeConfiguration.Standard.ConnectionString("Data Source=DatabaseFileName.sdf")) 
.Mappings(m => 
{ 
    m.FluentMappings.AddFromAssembly(typeof(Entity).Assembly); 
}) 
.BuildConfiguration(); 

assemblées avec vos mappings d'entité doivent être ajoutées via AddFromAssembly. DatabaseFileName.sdf est le chemin et le nom du fichier de base de données. Le chemin peut être absolu ou relatif au répertoire de travail de l'application (application Windows: System.AppDomain.CurrentDomain.BaseDirectory; application Web: System.AppDomain.CurrentDomain.RelativeSearchPath). Testé sur FNH1.0, NH2.1 et SQL Server CE 4.0.

EDIT: Le fichier de base de données doit être créé par le moteur de base de données:

using (var engine = new SqlCeEngine(connectionString)) 
{ 
    engine.CreateDatabase(); 
} 

Voici un exemple pour CE 3.5, mais il devrait fonctionner avec CE 4.0 ainsi: http://nhdatabasescopes.codeplex.com/SourceControl/changeset/view/f9e824a457e8#DatabaseScopes%2fMsSqlCeInFilePrivateScope.cs.

+0

Avez-vous testé cela en utilisant Compact Edition ** 4.0 **? – Nautic20

+0

Dans l'exemple expliqué ci-dessus, où "DatabaseFileName.sdf" est physiquement stocké dans votre système de fichiers? Où avez-vous placé des DLL pour SQL Server CE? – Nautic20

+0

Oui, cela fonctionne très bien avec CE 4.0. Mon projet référence l'assembly qui est placé dans le dossier des fichiers programme (quelque chose comme ce c: \ Program Files \ Microsoft SQL Server Compact Edition \ v4.0 \) - probablement pas le moyen optimal pour le déploiement XCOPY. La copie locale doit être définie sur true pour l'assemblage. Le fichier de base de données est créé dans le répertoire de base de votre processus - System.AppDomain.CurrentDomain.BaseDirectory (application Windows) ou System.AppDomain.CurrentDomain.RelativeSearchPath (application Web). –

Questions connexes