2011-05-02 25 views

Respuesta

10

FNH apoya CE 4.0, pruebe esta configuración:

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

asambleas con sus asignaciones de entidad deben añadirse a través de AddFromAssembly. DatabaseFileName.sdf es la ruta y el nombre de archivo del nombre de archivo de la base de datos. La ruta puede ser absoluta o relativa al directorio de trabajo de la aplicación (aplicación de Windows: System.AppDomain.CurrentDomain.BaseDirectory; aplicación web: System.AppDomain.CurrentDomain.RelativeSearchPath).

Probado en FNH1.0, NH2.1 y SQL Server CE 4.0.

EDIT: El archivo de base de datos debe ser creado por el motor de base de datos:

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

Aquí se muestra un ejemplo para CE 3.5 pero debería funcionar con el CE 4.0, así: http://nhdatabasescopes.codeplex.com/SourceControl/changeset/view/f9e824a457e8#DatabaseScopes%2fMsSqlCeInFilePrivateScope.cs.

+0

¿Ha probado esto usando Compact Edition ** 4.0 **? – Nautic20

+0

En el ejemplo explicado anteriormente, ¿dónde está almacenado físicamente el "Nombre de archivo de base de datos.sdf" en su sistema de archivos? ¿Dónde colocaste las DLL para SQL Server CE? – Nautic20

+0

Sí, funciona bien con CE 4.0. Mi proyecto hace referencia al ensamblaje que se coloca en la carpeta de archivos de programa (algo como este c: \ Archivos de programa \ Microsoft SQL Server Compact Edition \ v4.0 \) - muy probablemente no sea la forma óptima para la implementación de XCOPY. Copiar local se debe establecer en verdadero para el ensamblaje. El archivo de la base de datos se crea en el directorio base de su proceso: System.AppDomain.CurrentDomain.BaseDirectory (aplicación de Windows) o System.AppDomain.CurrentDomain.RelativeSearchPath (aplicación web). –

Cuestiones relacionadas