FluentNHibernate是否支持SQL Server Compact Edition 4.0?
问题描述:
我知道他们支持SQL CE。我认为他们达到3.5?我刚刚下载CE 4.0,我想测试它在我的项目,但我不能让它就在FluentNHibernate配置...FluentNHibernate是否支持SQL Server Compact Edition 4.0?
如果4.0支持:
我有什么版本下载,并可以有人给我一个如何实现它的例子?
答
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。
您是否使用Compact Edition ** 4.0 **测试了这个功能? – Nautic20 2011-05-02 16:02:20
在上面解释的例子中,在您的文件系统中物理存储的“DatabaseFileName.sdf”在哪里?你在哪里为你的SQL Server CE放置了DLL? – Nautic20 2011-05-02 17:10:28
是的,它可以与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