NHibernate入门示例1

 

create   table  Cat2(
CatId 
char ( 32 not   null   primary   key ,
Name 
nvarchar ( 16 not   null ,
Sex 
nchar ( 1 ),
Weight 
[ real ]
)

 

 

代码
< configuration >
  
  
<!--  Add this element  -->
  
< configSections >
    
< section  name ="hibernate-configuration"  type ="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"   />
  
</ configSections >

  
<!--  Add this element  -->
  
< hibernate-configuration  xmlns ="urn:nhibernate-configuration-2.2" >
    
< session-factory >
      
< property  name ="dialect" > NHibernate.Dialect.MsSql2008Dialect </ property >
      
< property  name ="connection.provider" > NHibernate.Connection.DriverConnectionProvider </ property >
      
< property  name ="connection.driver_class" > NHibernate.Driver.SqlClientDriver </ property >
      
< property  name ="connection.connection_string" > Server=192.168.10.99;initial catalog=DProjectWCGTest;uid=sa;pwd=Admin12345; </ property >
      
< property  name ="proxyfactory.factory_class" > NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu </ property >
      
      
< property  name ="show_sql" > true </ property >
     
      
<!-- <mapping resource="TestStaticContructor.Models.Cat.hbm.xml" assembly="TestStaticContructor" /> -->
      
< mapping   assembly ="TestStaticContructor"   />
    
</ session-factory >
  
</ hibernate-configuration >
  
</ configuration >

 

 

代码
<? xml version="1.0" encoding="utf-8"  ?>
< hibernate-mapping  xmlns ="urn:nhibernate-mapping-2.2"  namespace ="TestStaticContructor.Models"  assembly ="TestStaticContructor" >
  
  
<!--
  独立的实体: e.g.
  <class name="Test.Model.Person, Test.Model" table="Person">
-->
  
< class  name ="Cat"  table ="Cat" >
    
<!--  A 32 hex character is our surrogate key. It's automatically
generated by NHibernate with the UUID pattern. 
-->
    
< id  name ="Id" >
      
< column  name ="CatId"  sql-type ="char(32)"  not-null ="true" />
      
< generator  class ="uuid.hex"   />
    
</ id >
    
<!--  A cat has to have a name, but it shouldn' be too long.  -->
    
< property  name ="Name" >
      
< column  name ="Name"  length ="16"  not-null ="true"   />
    
</ property >
    
< property  name ="Sex"   />
    
< property  name ="Weight"   />
  
</ class >
</ hibernate-mapping >

 

 

代码
public   class  Cat
    {
        
private   string  id;
        
private   string  name;
        
private   char  sex;
        
private   float  weight;
        
public  Cat()
        {
        }
        
public   virtual   string  Id
        {
            
get  {  return  id; }
            
set  { id  =  value; }
        }
        
public   virtual   string  Name
        {
            
get  {  return  name; }
            
set  { name  =  value; }
        }
        
public   virtual   char  Sex
        {
            
get  {  return  sex; }
            
set  { sex  =  value; }
        }
        
public   virtual   float  Weight
        {
            
get  {  return  weight; }
            
set  { weight  =  value; }
        }
    }

 

代码
   static   void  Main( string [] args)
        {
            ISessionFactory sessionFactory 
=   new  Configuration().Configure().BuildSessionFactory();

            ISession session 
=  sessionFactory.OpenSession();

            Cat2 cat 
=   new  Cat2();
            cat.Name 
=   " Cat2 " ;

            Console.WriteLine(
" cat.name={0} " ,cat.Name.Length);

            cat.Sex 
=   ' ' ;
            cat.Weight 
=   3.14f ;
            ITransaction tran 
=  session.BeginTransaction();
            
try
            {
                session.SaveOrUpdate(cat);
                tran.Commit();
            }
            
catch  (Exception )
            {
                tran.Rollback();
                
throw ;
            }
            session.Close();
            sessionFactory.Close();

            Console.WriteLine(
" done " );
            
/// /
             // MyClass.SayHi();
            
// MyClass mc = new MyClass();
            Console.ReadKey();
        }

 

你可能感兴趣的:(Hibernate)