b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

nhibernate_nhibernate nuget_nhibernate 一对多(7)

电脑杂谈  发布时间:2017-04-03 07:05:23  来源:网络整理

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的输出,如下图所示:

QQ截图20111125102432

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

QQ截图20111125103238

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

QQ截图20111125103524

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

QQ截图20111125103622

本篇通过三个例子分别演示了NHibernate配置的三种方式,即XML配置,代码中配置,和使用NHibernate的fluent API配置。文中都给出了完整的代码,还有所涉及到的知识跟前面紧密相连。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-39178-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...