• 关于PetaPoco的T4模板使用


    PetaPoco是一款适用于.Net 和Mono的微小、快速、单文件的微型ORM。
    PetaPoco介绍:http://www.cnblogs.com/youring2/archive/2012/06/04/2532130.html

    PetaPoco做了最大改进,就是支持T4模板生成实体对象,以前我们写所有的POCO对象,很快会觉得乏味而且容易出错;现在好了,最新版PetaPoco支持利用T4模板自动根据数据库(包括SQL Server,SQL Server CE,MySQL,PostgreSQL和Oracle)的表生成映射的对象。

    Git仓库包括三个文件(或者通过NUGet引用到项目中会自动生成“Models/Generated”文件夹)。

    这些文件包括:

    • PetaPoco.Core.ttinclude - 包括所有的辅助函数读取数据库架构
    • PetaPoco.Generator.ttinclude - 它定义了将产生实际的模板
    • Database.tt - 包括各种设置,并包括其他两个ttinclude文件的模板本身。

    Database.tt:

    <#@ include file= " PetaPoco.Core.ttinclude " #>
    
     <#
         // 基本设置
         ConnectionStringName = " jab " ;//Web.Config或者App.Config中connectionStrings节点设置数据库连接名称
         Namespace = ConnectionStringName;
         DatabaseName = ConnectionStringName;
         string RepoName = DatabaseName + " DB " ;
         bool GenerateOperations = true ;
    
         // 数据库解析
         var tables = LoadTables();
     #>
    
     <#@ include file= " PetaPoco.Generator.ttinclude " #> 

    使用模板一般步骤:

    1. 这三个文件添加到您的C#项目(或使用的NuGet包)
    2. 请确保您有一个连接字符串和提供者的名称在您的app.config或web.config文件设置(见下面)
    3. 在Records.tt编辑的connectionStringName属性(即:从“jab”更改为您的连接字符串的名称)
    4. 保存Database.tt。

    按照上面操作步骤,如果不出什么意外,会生产一个Database.cs文件,在里面能看到映射数据库表的实体对象及基本操作。


    app.config或web.config的文件设置,根据自己系统数据库类型选择对应DbProviderFactories或connectionStrings。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.data>
        <DbProviderFactories>
          <remove invariant="MySql.Data.MySqlClient" />
          <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
          <remove invariant="Npgsql" />
          <add name="PostgreSQL Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql" />
          <remove invariant="System.Data.SQLite"/>
          <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
          <remove invariant="System.Data.SqlServerCe.4.0" />
          <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe"/>
          <remove invariant="System.Data.SqlClient"/>
          <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data"/>
        </DbProviderFactories>
     </system.data>
        <connectionStrings>
          <add name="mysql" connectionString="" providerName="MySql.Data.MySqlClient"/>
          <add name="postgres" connectionString="" providerName="Npgsql"/>
          <add name="sqlite" connectionString="" providerName="System.Data.SQLite"/>
          <add name="mssql" connectionString="" providerName="System.Data.SqlClient"/>
          <add name="mssqlce" connectionString="" providerName="System.Data.SqlServerCe.4.0"/>
        </connectionStrings>
    </configuration>

     

  • 相关阅读:
    Idea中SpringBoot热部署搭建
    Redis 集群搭建
    centos7 vsftp搭建
    Centos 7 安装jdk
    Centos7 安装nginx
    Xshell 连接Linux
    python 的mysql 操作
    NIO/BIO
    java基础-3
    java基础-2
  • 原文地址:https://www.cnblogs.com/songshuai/p/5607570.html
Copyright © 2020-2023  润新知