`
jesse_lin
  • 浏览: 9981 次
  • 性别: Icon_minigender_1
  • 来自: 海口
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

用Codesmith 5.2的Nhibernate模板从ORACLE数据库生成实体类和数据访问类

阅读更多

用Codesmith 5.2的Nhibernate模板从ORACLE数据库生成实体类和数据访问类


其实也是看了codesmith的video(http://www.codesmithtools.com/video/nhibernate.html)做的,虽然作者基于的前一个版本(vs2008,nhibernate2.0),但和最新的3.0 nhibernate模板操作是一样的

开始之前
你的电脑要有vs2010
安装codesmith,我的是5.2版本的
下载最新的nhibernate模板:http://code.google.com/p/codesmith/downloads/detail?name=NHibernate-v1.2.1.2125.zip&can=2&q=
有一个oracle数据库可以连接

有着了这些,就可以开始了

1. 新建一个class library 的工程
2. 在工程中加一个csp工程文件

内容如下:
<?xml version="1.0"?>
<codeSmith xmlns="http://www.codesmithtools.com/schema/csp.xsd">
  <variables>
    <add key="ConnectionString1" value="Data Source=localhost;Initial Catalog=Petshop;Integrated Security=True" />
    <add key="ConnectionString2" value="data source=localhost;persist security info=True;user id=hr;password=hr" />
  </variables>
  <propertySets>
    <propertySet name="NHibernateMaster" template="..\..\Templates\CSharp\NHibernateMaster.cst">
      <property name="VersionColumn">^((R|r)ow)?(V|v)ersion$</property>
      <property name="NHibernateVersion">v3_0</property>
      <property name="VsVersion">VS_2010</property>
      <property name="AssemblyName">Sample.Data</property>
      <property name="ManagerNamespace">Sample.Data.ManagerObjects</property>
      <property name="BusinessNamespace">Sample.Data.BusinessObjects</property>
      <property name="BaseNamespace">Sample.Data.Base</property>
      <property name="UnitTestNamespace">Sample.Data.UnitTests</property>
      <property name="SourceDatabase">
        <connectionString>$(ConnectionString2)</connectionString>
        <providerType>SchemaExplorer.OracleSchemaProvider,SchemaExplorer.OracleSchemaProvider</providerType>
      </property>
    </propertySet>
  </propertySets>
</codeSmith>

3. 更改csp文件中template的的位置,指向新下载的template,并配置oracle数据的链接
4. 然后就可以生成实体文件了
5. 实体生成好了以后,创建一个console applicaiton去测试一下
5. 在console applicaiton中加一个app.config,内容如下,注意你的数据库的版本,这里用的10g的数据库
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
  </configSections>
  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
      <property name="connection.connection_string">Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=xe)));User Id=hr;Password=hr;</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
      <mapping assembly="Sample.Data"/>
    </session-factory>
  </hibernate-configuration>
</configuration>  

6. 写一个main函数,就搞定了
        static void Main(string[] args)
        {
            try
            {
                IManagerFactory managerFactory = new ManagerFactory();       
                using (IJobManager categoryManager = managerFactory.GetJobManager())
                {
                    Job job = new Job();
                    var lst = categoryManager.GetAll();
                    System.Console.WriteLine(lst.Count + "");
                }
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.Message);
                System.Console.ReadLine();
            }
        }



  
分享到:
评论

相关推荐

    CodeSmith的nhibernate模板

    4. **数据访问层实现**:为了实现上述接口,模板还会生成具体的数据访问类,这些类使用NHibernate的Session工厂来创建Session实例,执行数据库操作。 5. **其他辅助类**:可能还包括事务处理、查询构造器、实体工厂...

    用CodeSmith生成nhibernate的映射文件说明

    CodeSmith会根据配置的信息自动分析数据库表结构,并生成相应的NHibernate实体类和映射文件。 #### 四、检查生成结果 生成完成后,会在指定的目录下看到两个文件夹:“Entities”和“Maps”。其中,“Entities”...

    codesmith生成实体类简单模板

    《使用Codesmith生成C#实体类的简易模板详解》 在软件开发过程中,尤其是在与数据库交互的业务逻辑层,实体类的创建是一项繁琐且重复的工作。 Codesmith是一款强大的代码生成工具,它允许开发者通过定制模板来自动...

    CodeSmith中的Nhibernate模板

    使用这些模板,开发者可以轻松地根据数据库模型生成完整的Nhibernate架构,包括实体类和映射文件。通过定制模板,可以进一步适应项目需求,如引入特定的设计模式,优化性能,或者增加日志记录等功能。 在实际开发中...

    NHibernate+CodeSmith+Oracle 代码生成模板C#

    不过,描述中提到这个模板集仅测试过Oracle,可能未在其他数据库系统上验证,这意味着在使用这套模板生成针对其他数据库系统的代码时,可能需要进行相应的调整。 总的来说,这个模板集合提供了一个高效的方法,帮助...

    Nhibernate模板(Codesmith)

    Codesmith是一个强大的代码生成工具,它可以读取数据库结构或者XML文件,根据预设的模板生成所需的代码。使用Nhibernate模板,你可以: 1. **自定义模板**:根据项目需求,自定义模板以生成特定格式的实体类、映射...

    CodeSmith 官方模板文件包含NHibernate

    1. 实体类(Entity)模板:这些模板可以自动生成符合NHibernate规范的实体类,每个类对应数据库中的一个表,包含了属性和对应的数据库字段。 2. 映射文件(Mapping File)模板:这些模板用于生成.hbm.xml文件,定义...

    CodeSmith 生成工具 6.5 (可生成Nhibernate)

    CodeSmith 6.5结合Nhibernate,意味着用户可以通过模板自定义生成Nhibernate所需的映射文件(.hbm.xml或使用Fluent NHibernate的配置)、实体类以及数据访问层接口和实现。 在使用CodeSmith 6.5时,用户首先需要...

    codesmith生成实体类、数据层类、和存储过程

    【codesmith生成实体类、数据层类、和存储过程】是一种高效的软件开发工具,它能够自动化地根据数据库结构自动生成对应的C#代码,包括实体类(Entity Class)、数据访问层(Data Access Layer)类以及与数据库交互的...

    CodeSmith根据数据库表生成实体类的例子

    里面是CodeSmith根据数据库表生成实体类的例子, 数据库是mysql,生成的是java文件, codesmith的mysql链接字符串为: Database=test;Data Source=127.0.0.1;User Id=root;Password=root;port=3306

    生成Nhibernate的类库和映射文件的codesmith模板

    2. **映射文件模板**:这部分用于生成NHibernate的.hbm.xml文件,它描述了实体类与数据库表之间的映射关系。模板需要包含元素如`&lt;class&gt;`、`&lt;id&gt;`、`&lt;property&gt;`等,以指定类名、主键、属性等信息。 3. **数据库...

    CodeSmith对应的NHibernate的.hbm.xml映射文件的生成模板

    使用这些模板时,开发者可以输入数据库连接信息,选择要生成映射文件的表或整个数据库,CodeSmith将自动解析数据库模式并生成相应的C#类和.hbm.xml文件。这样,开发者可以快速建立起对象模型与数据库之间的桥梁,...

    CodeSmith关于IBatisNet和NHibernate模板

    CodeSmith可以用于生成NHibernate的映射文件(XML或Fluent NHibernate的C#代码),实体类,以及Repository模式下的数据访问接口和实现。这有助于保持代码整洁,降低维护难度。 在使用CodeSmith时,你需要了解以下...

    NHibernate2.x CodeSmith 模板

    NHibernate2.x的CodeSmith 模板,最新的NHibernate2.1.2GA可用。可参见NHibernate2 DEMO程序 使用CodeSmith直接读取数据库来生成实体类及映射文件,节省大量的编码时间。 比NHibernate1.2的模板稍有改动。

    CodeSmith自动生成实体类的模板代码

    4. **生成代码**:配置好模板和数据源后,运行CodeSmith,它会读取模板,用实际数据替换变量,并生成最终的实体类代码。生成的代码可以输出到文件中,方便集成到项目中。 5. **优化和迭代**:随着项目需求的变化,...

    CodeSmith的批量生成数据库表创建脚本的模板

    CodeSmith提供了一种解决方案,通过预先定义好的模板(Script.cst和ScriptsTest.cst),我们可以根据数据库元数据信息,一键生成所有或选定表的创建脚本。 描述中提到"简单的属性配置",这意味着在使用CodeSmith时...

    NHibernate三层示例,附带codesmith模板

    在NHibernate示例中,Codesmith模板可能用于快速生成与数据库交互的实体类、接口、DAO(数据访问对象)等代码,极大地减少了手动编码的工作量。 在提供的压缩包文件中,"NHibernate Model Temp 2005"可能包含的是...

    MySql数据库CodeSmith模板

    CodeSmith是一款流行的数据驱动的代码生成器,它允许开发者通过自定义模板来快速创建各种类型的代码,如实体类、数据访问层(DAL)、业务逻辑层(BLL)以及ASP.NET MVC视图等。 在描述中提到的模板,特别之处在于它...

    NHibernate2.0 实体类和配置文件生成模板

    这个“NHibernate2.0 实体类和配置文件生成模板”是针对CodeSmith工具设计的,用于自动化创建与数据库表对应的实体类和配置文件,提高开发效率。 CodeSmith 是一款基于模板的代码生成工具,通过自定义模板,可以...

    CodeSmith三层模板

    模板可以根据数据库结构自动生成ADO.NET数据访问代码,或者生成ORM框架如NHibernate或Entity Framework的数据上下文和实体类。 - ThreeTier.Models.cst:这个模板用于创建实体模型(Models)的代码。它会根据数据库...

Global site tag (gtag.js) - Google Analytics