11. 我们Main方法中添加以下代码使用NHibernate Profiler通过NHibernate与应用程序的通信:
HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
12. 最后使用位于NHibernate.Cfg.Loquacious命名空间中的fluent API配置NHibernate。首先在Program类中添加一个静态方法:GetConfiguratioin,它包含以下配置的代码:
private static Configuration GetConfiguration() { var cfg = new Configuration(); cfg.Proxy(p => { p.ProxyFactoryFactory<ProxyFactoryFactory>(); }); cfg.DataBaseIntegration(db => { db.ConnectionProvider<DriverConnectionProvider>(); db.Driver<SQLite20Driver>(); db.Dialect<SQLiteDialect>(); db.ConnectionStringName = "Sample"; db.LogSqlInConsole = true; }); cfg.AddAssembly(typeof(Person).Assembly); return cfg; }
13. 然后在Program类中再添加一个静态方法:BuildSchema,用来重新创建架构
private static void BuildSchema(Configuration configuration) { new SchemaExport(configuration).Execute(true, true, false); }
14. 最后在Main方法中添加如下代码,跟前面两个例子是一样的:
var configuration = GetConfiguration(); BuildSchema(configuration); var factory = configuration.BuildSessionFactory(); using (var session = factory.OpenSession()) { var person = new Person { Name = new Name { LastName = "Doe", FirstName = "John", MiddleName = "A." }, Birthdate = new DateTime(1977, 1, 6), SSN = "111-22-3333" }; session.Save(person); session.Flush(); session.Clear(); var fromDb = session.Get<Person>(person.Id); Console.Write("\r\n\nHit enter to exit:"); Console.ReadLine();
15. 启动NHibernate Profiler。
16. 运行程序,监视NHibernate Profiler的输出,如下图所示:

17. 可以看到使用了两个session,第一个用来重新创建架构,第二个用来保存和加载person对象。让我们仔细的看一下创建表的脚本,如下图:

18. 让我们看一下INSERT语句,如下图所示:

19. 最后看一下SELECT语句,如下图所示:

本篇通过三个例子分别演示了NHibernate配置的三种方式,即XML配置,代码中配置,和使用NHibernate的fluent API配置。文中都给出了完整的代码,还有所涉及到的知识跟前面紧密相连。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-39178-7.html
一定要看
上面七只