zoukankan      html  css  js  c++  java
  • Nhibernate学习教程一 简单的应用

      其实网络里有了很多相关的资料和资源.因为第一次接触nbernate的人不少,可惜会遇到很多不同的问题.特意把我自己在使用的过程中遇到的问题给大家讲解一下.希望对新手有少少作用

    网络里的例子 nhibernate1.2版本 +sqlserver2005+ vs2003

    1.建立一个项目,名字叫ClassLibrary

     2.新建立一个类 user

    Code

    3. 新建立一个xml文件   User.hbm.xml

    这里要注意这一段<class name="ClassLibrary.User, ClassLibrary" table="users" lazy="false">

    有一点必须注意的是,必须把该xml文件右键属性设置为生成操作-->嵌入的资源

     ClassLibrary是你的程序集名称和默认空间

    Code

    4.编译好dll文件

    5.新增加一个项目Nhibernate1 (使用的是sqlserver2005数据库)

     添加一个app.config文件

    Code

    6.在test库里建立一个数据表 User

    7.建立一个窗体.然后把下面代码贴入

    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using NHibernate;
    using NHibernate.Cfg;

    Using ClassLibrary;

    namespace Nhibernate1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                Configuration cfg = new Configuration();
                cfg.AddAssembly("ClassLibrary");

                ISessionFactory factory = cfg.BuildSessionFactory();
                ISession session = factory.OpenSession();
                ITransaction transaction = session.BeginTransaction();

                User newUser = new User();
                newUser.Id = "joe_cool_test";
                newUser.UserName = "Joseph Cool";
                newUser.Password = "abc123";
                newUser.EmailAddress = "joe@cool.com";
                newUser.LastLogon = DateTime.Now;

                // Tell NHibernate that this object should be saved
                session.Save(newUser);

                // commit all of the changes to the DB and close the ISession
                transaction.Commit();
                session.Close();

                MessageBox.Show("OK!");
            }
        }
    }

     遇到的错误

    1.

     NHibernate.MappingException:   Unknown   entity   class:

    把xml文件嵌入的资源一般可以解决

    2.

    cfg.AddAssembly("Nhibernate12");

     未处理MappingException

    Could not add assembly Nhiberate

    把库类设置好一般都可以解决该问题

    3.Winform其实不必要分开两个项目来实现,可以使用一个项目来实现的,原理一致

     4.因为ASP.NET没有办法设置namespace,WebForm所以引用两个项目就有必要,按照上面的代码 ASP.Net测试也成功

  • 相关阅读:
    人工智能技术导论——博弈树搜索
    人工智能技术导论——基于产生式规则的机器推理
    人工智能技术导论——基于遗传算法的随机优化搜索
    人工智能技术导论——使用PROLOG逻辑语言解决爱因斯坦斑马问题
    人工智能技术导论——逻辑程序设计语言PROLOG
    操作系统——页面调度算法
    操作系统——页式存储管理
    人工智能技术导论复习大纲
    计算机图形学复习大纲
    算法设计与分析——算法复杂性分析
  • 原文地址:https://www.cnblogs.com/meetweb/p/1292642.html
Copyright © 2011-2022 走看看