NHibernate学习小心得 一

来源:互联网 发布:mac groovy 配置 编辑:程序博客网 时间:2024/04/29 16:30

项目需要,一向对orm不感冒的我要硬着头皮学习NHibernate,用了整整一天的时候,终于可以基本使用了。

发觉自己还真是笨,刚刚接触,把碰钉的地方记录下来,以免日后再范。也希望有高手指点指点!

 

  (*^__^*)...嘻嘻,今天是第一天,所有实验的东西不多!


1、hibernate.cfg.xml非常重要,放置在项目跟目录中,并且文件属性“复制到输出”是必须设定的。
 其中设置的属性有一个特别注意:hbm2ddl.auto,要设置成validate
 1)若在此文件中添加了映射文件位置,则不能在使用的时候砸死configuration中再重复加入。否则报错。
       2)注意SchemaExport。
2、.hbm.xml文件,
    xmlns="urn:nhibernate-configuration-2.2" 根据nhibernate-configuration.xsd
 来写,不能错,连一个空格都不能多。

    必须设置为 嵌入的资源 ,差点望了写。。。嘻嘻
3、一对多映射
   1)如果在hibernate.cfg.xml中用 <mapping assembly="assemblyName" />来确定.hbm.xml文件的位置的话,
 我发现只能读一个文件。有待实验。
   3)一对多映射,(users--userType),在type设置<list></list>,若用id作为index的话,id全部未0,原因未明。
   4)一对多映射,用<set>,实体userType中集合users需要用ICollection<User>.
   5) 一对多映射,<set name="Users" inverse ="true" cascade="all">...</set>对UserType的操作会影响到uses。
 所有操作都级联。
   6)要级联创建对象,需要双方都指定关联。并且只能保存type才能级联。
        UserType type = new UserType() { TypeName = "goodtype" };
            User user = new User() { Name = "GoodUser",Type =type};
            type.Users = new HashSet<User>();
            type.Users.Add(user);
            NHibernateSmaple smaple = new NHibernateSmaple(this.session);
            smaple.CreateType(type);

原创粉丝点击