2011-05-02 184 views

回答

10

FNH支持CE 4.0,尝试这种配置:

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

组件与实体映射应通过AddFromAssembly添加。 DatabaseFileName.sdf是数据库文件名的路径和文件名。路径可以是或绝对或相对于应用程序的工作目录(Windows应用程序:System.AppDomain.CurrentDomain.BaseDirectory; Web应用程序:System.AppDomain.CurrentDomain.RelativeSearchPath)。

在FNH1.0,NH2.1和SQL Server CE 4.0上测试。

编辑: 数据库文件必须由数据库引擎创建:

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

这里是CE 3.5的例子,但它应该CE 4.0以及工作:http://nhdatabasescopes.codeplex.com/SourceControl/changeset/view/f9e824a457e8#DatabaseScopes%2fMsSqlCeInFilePrivateScope.cs

+0

您是否使用Compact Edition ** 4.0 **测试了这个功能? – Nautic20 2011-05-02 16:02:20

+0

在上面解释的例子中,在您的文件系统中物理存储的“DatabaseFileName.sdf”在哪里?你在哪里为你的SQL Server CE放置了DLL? – Nautic20 2011-05-02 17:10:28

+0

是的,它可以与CE 4.0一起使用。我的项目引用程序集放置在程序文件文件夹中(类似于c:\ Program Files \ Microsoft SQL Server Compact Edition \ v4.0 \) - 很可能不是XCOPY部署的最佳方式。复制本地必须设置为真。数据库文件在您的进程的基本目录中创建 - System.AppDomain.CurrentDomain.BaseDirectory(Windows应用程序)或System.AppDomain.CurrentDomain.RelativeSearchPath(Web应用程序)。 – 2011-05-02 17:44:04

相关问题