@关于Petapoco的基础连接
Petapoco连接准备
首先我们需要准备在VS nuget 包管理控制台(操作步骤:工具->nuget包管理器->管理解决方案的nuget程序包)下载Petapoco,一般情况安装最新版的版本
安装完之后会多出一个Models文件夹,里面会存放我们的Petapoco.cs的工具类源代码文件,以及一个后缀为.tt(T4模板文件:文本模板转换工具包和.tt依赖关联的两个生成文件,想了解具体的可以查看:https://www.imooc.com/wenda/detail/432510),如下面:
Petapoco连接到MySQL
1.安装mysql-connector-net-8.0.14.msi
我们需要准备一个mysql OBDC 数据源的注册连接插件,在网上可以下载mysql-connector-net-8.0.14.msi这个插件,可以前往这个地址:https://dev.mysql.com/downloads/connector/net/6.4.html
具体下载操作可以前往查看地址:https://jingyan.baidu.com/article/a3f121e421bde4bc9052bbe6.html
2.引用MySql.Data.dll
后面在项目里面直接添加就可以了,因为我是本地主机有这个插件,所以直接添加引用了该插件本地的路径,如果没有本地主机没有这个插件,可以在nuget上下载安装到项目里。
3.添加连接配置及引用
app.config文件内添加。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add connectionString="server=localhost;database=test;port=3306;user id=root;password=root;Connect Timeout=500;Charset=gb2312" name="test" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
</configuration>
代码里例如查询操作,Database的构造函数实参的参数就是配置中的 name 属性值
private List<T__interface> Query()
{
var db = new PetaPoco.Database("test");
try
{
PetaPoco.Sql sql = new Sql("SELECT * FROM t_interface order by id desc limit 0,10");
List<T__interface> datas= db.Query<T__interface>(sql).ToList();
return datas;
}
finally
{
db.Dispose();
}
}
Model实体类 T__interface 的属性映射需要添加,映射注解:TableName(表名),PrimaryKey(主键),Column(列名->指定列名方式映射)。
需要注意的是如果没有Column注解的属性,那么会默认以该属性名作为Column的列映射,如果不想映射该属性,需要该属性上面添加注解Ignore。
using PetaPoco;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Test.model
{
[TableName("t__interface")]
[PrimaryKey("id")]
public class T__interface
{
[Column("id")]
public int id { set; get; }
[Column("status")]
public int status { set; get; }
[Ignore]
public string content { set; get; }
}
}
扩展
除此之外我们还可以利用T4模板文件(后缀是.tt的文件)一键生成实体类,这个就类似于 EntityFramework 里面的 DB First ,我们需要先将数据库建好,然和根据数据库创建对应的表名->实体类名,列名->属性名。
1.建立数据库
2.设置T4模板映射
将 ConnectionStringName 设置在你的项目中的app.config文件里配置的连接名
然后T4模板文件设置完后保存就可以了,一般情况会自动运行的改动后保存后的T4文件。或者也可以右击该文件 -> 运行自定义工具。之后我们可以看到自动生成的DB操作和实体映射在一起的文件类了。
3.增删改查操作
由于根据T4生成,可以方便我们增删改查可以快速简单操作。下面是代码
//条件查询多条数据
public List<t__interface> Query()
{
string table = t__interface.GetType().Name;
Sql sql = new Sql("select * from " + table + " where status < 2");
return testDB.Record<t__interface>.Query(sql).ToList();
}
//根据查寻到的数据对象修改某条属性后再传入修改
public void Update(t__interface t_)
{
t_.Update();
}
//根据查寻到的数据对象后再传入删除
public void Delete(t__interface t_)
{
t_.Delete();
}
//创建对象,传入直接新增数据
public void Insert(t__interface t_)
{
t_.Insert();
}