- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看过有关 nHibernate 的 SchemaUpdate
的各种博客文章,甚至还有 Ayende
非常好的示例,并下载了示例,但由于某种原因我无法获得相同的示例同样的事情为我工作。我会注意到我正在使用 Fluent NHibernate,但据我所知,这不会产生太大的差异。
I have reached the point where the
SchemaUpdate
runs, but it is just a full schema creation, no 'altering'. In otherwords, it's the same as if I just built the database fresh. I am posting my full source below.
这就是我基本上正在尝试的...我认为这通常是不言而喻的,但基本上我正在使用 Fluent Configuration 创建一个 Configuration
对象,然后尝试将其传递进去。测试通过,程序运行……但实际上什么也没发生。我永远看不到任何结果,也永远看不到数据库架构的更新。
Database gets created (missing columns, etc)
Database then gets mapped with new schema on next run.
Database (Update) should update the Schema per the Update method.
但这并不是实际发生的情况。
我还查看了有关此事的其他帖子。就像这里:http://morten.lyhr.dk/2008/03/nhibernates-schemaupdate-feature.html
此外,我在找到以下 Stack Overflow 帖子后更改了我的代码 Make Fluent NHibernate output schema update to file
即使使用示例代码也无法清楚地了解此功能。
private static void UpdateSchema(NHibernate.Cfg.Configuration Config) {
System.Action<string> updateExport = x => {
using (var file = new System.IO.FileStream(@"C:\Users\User\Documents\Visual Studio 2010\Mappings\update.sql", System.IO.FileMode.Append, System.IO.FileAccess.Write))
using (var sw = new System.IO.StreamWriter(file)) {
sw.Write(x);
sw.Close();
}
};
NHibernate.Tool.hbm2ddl.SchemaUpdate SchemaUpdater = new NHibernate.Tool.hbm2ddl.SchemaUpdate(Config);
SchemaUpdater.Execute(updateExport, false);
}
public static ISessionFactory Map(string connectionString) {
// fluently configure an ms-sql 2008 database
return FluentNHibernate.Cfg.Fluently.Configure()
.Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.Is(connectionString))
.AdoNetBatchSize(50)
.FormatSql()
.UseReflectionOptimizer())
.Cache(c => c
.ProviderClass<NHibernate.Caches.SysCache2.SysCacheProvider>()
.UseQueryCache()
.UseSecondLevelCache()
.UseMinimalPuts())
.Mappings(m => {
m.FluentMappings.Conventions.Setup(x => {
x.AddFromAssemblyOf<Mappings.AspectMap>();
x.Add<EnumConvention>();
x.Add(FluentNHibernate.Conventions.Helpers.AutoImport.Never());
});
m.FluentMappings.AddFromAssembly(System.Reflection.Assembly.GetExecutingAssembly());
})
.ExposeConfiguration(UpdateSchema)
.BuildSessionFactory();
}
最佳答案
你的例子对我来说效果很好(NH3.1,FNH 2.1)。 SchemaUpdater 检查当前数据库架构并创建正确的更改脚本。所有生成的脚本片段都会暴露给 UpdateSchema。这里没问题。我唯一感到困惑的细节是文件模式访问:
SchemaUpdater.Execute(updateExport, false);
也许最好在架构更新之前删除输出文件。
生成的脚本可以自动执行(doUpdate参数为true):
SchemaUpdater.Execute(updateExport, true);
我不知道这是否是你的情况,但我现在很高兴 - 你的代码片段解决了我的一些问题。感谢您的灵感:)。
关于nhibernate - 即使有博客文章,也很难理解 nHibernate SchemaUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718025/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我有一个带有输入字段的表单,使用javascript,当用户输入超过2个字符时,它会在第一个输入字段下方创建相同的输入字段。其代码是: Optie 1: 1 && treated[this.na
这是我的: char userInput; int position; vector userVector(7); vector someVector(7,1); cin >> userInput;
尝试使用 typescript 和 redux 构建一个简单的 react crud 应用程序并遇到以下问题。我有一个具有指定签名的函数,它将一个人对象作为参数,如此处所示。 export defau
哦,我多么希望 TCP 像 UDP 一样基于数据包! [查看评论] 但是,唉,事实并非如此,所以我正在尝试实现我自己的数据包层。这是到目前为止的事件链(忽略写入数据包) 哦,我的数据包结构非常简单:两
我想在我的页面底部放置一个包含不同数量图片的栏,这些图片(如果比页面宽)可以左右滚动。 页面宽度在变化,我希望 Pane 的宽度为 100%。 我试图通过让中间的 div 溢出并使用 jquery.a
我曾尝试在工作时将我的 Rails 应用程序 bundle 到我的 Mac 上。在家里它运行良好,我之前已经设法自己解决了它,但这次无论我尝试什么似乎都无法解决它。 我在运行 bundle/bundl
所以我有一个旧的网络表单站点,并且正在努力使其更易于维护。把它扔掉并重写它不是一种选择。 IoC 显然是它首先得到的东西之一,但这给我留下了服务定位器模式和糟糕的品味,并且想知道它是否可以做得更好。
我是一名优秀的程序员,十分优秀!