PetaPoco微型ORM

2024-09-01 05:48
文章标签 orm 微型 petapoco

本文主要是介绍PetaPoco微型ORM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PetaPoco是一款适用于.Net 和Mono的微小、快速、单文件的微型ORM。

PetaPoco有以下特色:

微小,没有依赖项……单个的C#文件可以方便的添加到任何项目中。
工作于严格的没有装饰的Poco类,和几乎全部加了特性的Poco类
Insert/Delete/Update/Save and IsNew 等帮助方法。
分页支持:自动得到总行数和数据
支持简单的事务
更好的支持参数替换,包括从对象属性中抓取命名的参数。
很好的性能,剔除了Linq,并通过Dynamic方法快速的为属性赋值
T4模板自动生成Poco类
查询语言是Sql……不支持别扭的fluent或Linq语法(仁者见仁,智者见智)
包含一个低耦合的Sql Builder类,让内联的Sql更容易书写
为异常信息记录、值转换器安装和数据映射提供钩子。(Hooks for logging exceptions, installing value converters and mapping columns to properties without attributes.)
兼容SQL Server, SQL Server CE, MySQL, PostgreSQL and Oracle。
可以在.NET 3.5 或Mono 2.6或更高版本上运行
在.NET 4.0 和Mono 2.8下支持dynamic
NUnit单元测试
开源(Apache License)
所有功能大约用了1500行代码

可以从这里获得PetaPoco:
NuGet - http://nuget.org/List/Packages/PetaPoco
GitHub - https://github.com/toptensoftware/petapoco
代码展示:
首先,定义一个Poco类:

复制代码
// Represents a record in the “articles” table
public class article
{
public long article_id { get; set; }
public string title { get; set; }
public DateTime date_created { get; set; }
public bool draft { get; set; }
public string content { get; set; }
}
复制代码
接下来,创建一个PetaPoco.Database,来执行查询:

复制代码
// Create a PetaPoco database object
var db=new PetaPoco.Database(“connectionStringName”);

// Show all articles
foreach (var a in db.Query

(“SELECT * FROM articles”))
{
Console.WriteLine(“{0} - {1}”, a.article_id, a.title);
}
复制代码
得到一个scalar:

这篇关于PetaPoco微型ORM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126111

相关文章

Go 在orm中使用反射

作为静态语言,golang 稍显笨拙,还好 go 的标准包reflect(反射)包弥补了这点不足,它提供了一系列强大的 API,能够根据执行过程中对象的类型来改变程序控制流。本文将通过设计并实现一个简易的 mysql orm 来学习它,要求读者了解mysql基本知识,并且跟我一样至少已经接触 golang 两到三个月。 orm 这个概念相信同学们都非常熟悉,尤其是写过rails的同学,对acti

第二十二章 rust数据库使用:sea-orm详解

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust数据库使用:sea-orm详解 目录 注意一、前言二、项目管理三、迁移文件四、实体文件五、业务使用 一、前言 只要开发稍微大型一点的项目,数据库都是离不开的。 rust目前并没有特别成熟的数据库框架,sea-orm这个框架是我目前所看到的成熟度最高的一个,并且仍在积极开发中。 所以本文将以sea-orm框

设计之道:ORM、DAO、Service与三层架构的规范探索

引言: 实际开发中,遵守一定的开发规范,不仅可以提高开发效率,还可以提高项目的后续维护性以及项目的扩展性;了解一下本博客的项目设计规范,对项目开发很有意义 一、ORM思想 ORM(Object-Relational-Mapping)在对象模型和关系型模型之间做一个映射(转换)。 目的是为了解决面向对象编程语言的发展和关系型数据库的发展不匹配的问题 可以理解为: 将Java中的数据结

微型丝杆工艺流程!

微型丝杆是一种高精度、高刚度的机械传动元件,广泛应用于各种领域。由于其精度要求高,制作过程需要经过多道工序的加工和检测,以下是微型丝杆工艺流程的简要概述: 1、材料准备:根据微型丝杆的使用环境和性能要求,选择合适的材料,并对所选材料进行严格的质量检验,确保其符合生产要求,避免使用有缺陷的材料。 2、下料:是将准备好的原材料加工成毛坯的过程,下料后需要进行毛坯的外观检查和尺寸测量,以确保

easyswoole orm 查询字段中出现关键字报错

使用easyswoole orm 报如图错误: 我使用的是一个很简单的orm 语法: public function getItemById(int $id):?array {return $this->create()->get($id)->toArray();}  报错的位置就在 这一句,之前也用过 也没报错,开始没弄懂为什么会出现报错,然后仔细的阅读了一下错误提示: 貌似是说

如何在 ThinkPHP 中整合 Laravel Eloquent ORM

前言 之前维护的旧项目采用的 ThinkPHP 3.2,后面学习了 Laravel 后,觉得 TP 的 Model 功能没有 Laravel 强大和方便,并想把 Laravel 里的 Eloquent 用在 TP 里。 好在 Laravel 的 ORM 是独立成包的,可以用于符合要求的其他 PHP 系统中。 整合 要使用的是 illuminate/database 。 安装illumin

Spring对ORM的支持之集成Hibernate3

Hibernate是全自动的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库。 Spring2.5+ 版本支持Hibernate 3.1+ 版本,不支持低版本,Spring 3.0.5 版本提供对Hibernate 3.6.0 Final 版本支持。 8.2.1  如何集成 Spring通过使用如下Bean进行集成Hibernate: LocalSessionFac

org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 29 near line 1, column

@SuppressWarnings("unchecked")   public List<Strudent> getStudent(int count) {       String hql = "select top "+count+" from Student";       return (List<Student>)getHibernateTemplate().fin

JDBC_ORM原理JAVA277-279

来源:http://www.bjsxt.com/ 一、S03E277_01JDBC_ORM原理、使用Object数组存储一条记录 引用表emp #右击该properties文件--properties--Resource--Text file encoding,选中other,选择其它编码方式。#如UTF-8或GBK,这样就能在properties里面输入中文,而不会自动转成Uni

基于AG32 MCU微型光伏逆变器解决方案

基于AG32 MCU微型光伏逆变器解决方案         光伏并网发电系统拓扑结构有集中式、组串式、微型逆变器等多种方案。其中微型光伏逆变器(Micro Photovoltaic inverter)可单独将每块光伏电池输出的电能经过转换直接输送到电网,能对每块光伏电池进行最大功率跟踪,保证每个光伏组件都工作在最大输出功率点,转换效率较高,同时具有很强的抗局部阴影能力,在光伏中将得到广泛