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.
Avez-vous testé cela en utilisant Compact Edition ** 4.0 **? – Nautic20
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
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). –