2011-05-02 220 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

相關問題