关于PetaPoco的T4模板使用
2016-06-22 16:17
323 查看
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:
使用模板一般步骤:
这三个文件添加到您的C#项目(或使用的NuGet包)
请确保您有一个连接字符串和提供者的名称在您的app.config或web.config文件设置(见下面)
在Records.tt编辑的connectionStringName属性(即:从“jab”更改为您的连接字符串的名称)
保存Database.tt。
按照上面操作步骤,如果不出什么意外,会生产一个Database.cs文件,在里面能看到映射数据库表的实体对象及基本操作。
app.config或web.config的文件设置,根据自己系统数据库类型选择对应DbProviderFactories或connectionStrings。
GitHub - https://github.com/toptensoftware/petapoco
原文-https://github.com/CollaboratingPlatypus/PetaPoco/wiki/T4-Template-Poco-Builder
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 " #>
使用模板一般步骤:
这三个文件添加到您的C#项目(或使用的NuGet包)
请确保您有一个连接字符串和提供者的名称在您的app.config或web.config文件设置(见下面)
在Records.tt编辑的connectionStringName属性(即:从“jab”更改为您的连接字符串的名称)
保存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>
NuGet - http://nuget.org/List/Packages/PetaPoco
GitHub - https://github.com/toptensoftware/petapoco
原文-https://github.com/CollaboratingPlatypus/PetaPoco/wiki/T4-Template-Poco-Builder
相关文章推荐
- 通过微信查找SAP TCODE代码
- OC 简化项目中拼接字符串的方法
- ASM disk header 备份与恢复、单机ASM下CSS进程无法启动
- [HID]简读Usage Tables
- vs+opencv 使用过程中所遇问题记录 day3
- JAVA中重写equals()方法为什么要重写hashcode()方法说明
- 第二章 CSS工作原理(伪类与伪元素)
- 记录一次处理weblogic故障的过程
- ASM实例构成概述、常用参数、常用命令
- 在MVC中实现文件的上传
- Metasploit利用远程桌面协议RDP拒绝访问漏洞(MS12-020)
- GCD
- Glide 加载圆角、圆形图片
- Android xUtils3的使用及下载地址
- C#发送邮件代码
- linux学习第六天
- 在Ubuntu上用命令创建你的第一个Qt程序
- Android 6.0 最简单的权限获取方法 RxPermition EasyPermition
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——内核启动与文件系统挂载
- navicat 快捷键