PetaPoco与SQLite.

对于精简版本的ORM,PetaPoco确实短小精悍,想做个WPF的Demo,然后将PetaPoco与SQLite集成一起使用,简单易用,是不错的选择。

  1. ()==数据库配置文件
  2.  
  3. <!--数据库配置-->
  4. <appSettings>
  5. <!--SQLite-->
  6. <add key="SQLString" value="~\App_Data\OldDemo.db"/>
  7. <add key="SQLString2" value="|DataDirectory|OldDemo.db"/>
  8. </appSettings>
  9.  
  10. ()配置类
  11. class Config
  12. {
  13. public static string DatabaseFile = "";
  14. public static string DataSource
  15. {
  16. get
  17. {
  18. return string.Format("data source={0}", ConfigurationManager.AppSettings["SQLString2"]);
  19. }
  20. }
  21. }
  22.  
  23. ()==BaseServices
  24.  
  25. using System;
  26. using System.Collections.Generic;
  27. using System.Data;
  28. using System.Data.SQLite;
  29. using System.Linq;
  30. using System.Runtime.Remoting.Messaging;
  31. using System.Text;
  32. using App.Core.Constant;
  33. using PetaPoco;
  34.  
  35. namespace App.Core.Service
  36. {
  37. public abstract class BaseService
  38. {
  39. private IDbConnection connection;
  40.  
  41. public BaseService()
  42. {
  43. connection = new SQLiteConnection(Config.DataSource);
  44. }
  45.  
  46. /// <summary>
  47. /// 查询所有对象
  48. /// </summary>
  49. /// <typeparam name="T">泛型对象</typeparam>
  50. /// <returns></returns>
  51. public List<T> Query<T>()
  52. {
  53. var list = new List<T>();
  54. try
  55. {
  56. string className = typeof(T).ToString();
  57.  
  58. var db = new Database(connection);
  59. string name = className.Substring(
  60. className.LastIndexOf('.') + ,
  61. className.Length - className.LastIndexOf('.') - );
  62.  
  63. connection.Open();
  64.  
  65. list = db.Fetch<T>(string.Format("select * from {0} ", name));
  66. }
  67. catch (Exception ex)
  68. {
  69. throw ex;
  70. }
  71. return list;
  72. }
  73.  
  74. /// <summary>
  75. /// 删除对象
  76. /// </summary>
  77. /// <typeparam name="T">泛型对象</typeparam>
  78. /// <param name="objData"></param>
  79. /// <returns></returns>
  80. public int Delete<T>(object objData)
  81. {
  82. var result = ;
  83. try
  84. {
  85. var db = new Database(connection);
  86. connection.Open();
  87. result = db.Delete<T>(objData);
  88. }
  89. catch (Exception ex)
  90. {
  91. throw ex;
  92. }
  93. return result;
  94. }
  95.  
  96. /// <summary>
  97. /// 添加一条记录
  98. /// </summary>
  99. /// <typeparam name="T"></typeparam>
  100. /// <param name="objData"></param>
  101. /// <returns></returns>
  102. public T Add<T>(object objData)
  103. {
  104. T result;
  105. try
  106. {
  107. var db = new Database(connection);
  108. connection.Open();
  109. result = (T)Convert.ChangeType(db.Insert(objData), typeof(T));
  110. }
  111. catch (Exception ex)
  112. {
  113. throw ex;
  114. }
  115. return result;
  116. }
  117. }
  118. }

PetaPoco与SQLite的更多相关文章

  1. 整理两个PetaPoco连接SQLite数据库的方法

    从https://github.com/qingask/PetaPoco.NetCore下载源文件压缩包 解压出文件PetaPoco.Multiple.cs.PetaPoco.NetCore.cs 放 ...

  2. mono for android中使用dapper或petapoco对sqlite进行数据操作

    在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...

  3. 【Xamarin挖墙脚系列:Mono项目的图标为啥叫Mono】

    因为发起人大Boss :Miguel de lcaza 是西班牙人,喜欢猴子.................就跟Hadoop的创始人的闺女喜欢大象一样...................... 历 ...

  4. 关于PetaPoco的T4模板使用

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

  5. PetaPoco轻量级ORM框架 - 入门安装

    PetaPoco 是一个开源轻量级ORM,够小,够快,单文件 在GitHub上有很高的人气 1377星,几年来作者一直在更新 当前版本6.0.317 - Netstandard 2.0(同时支持.ne ...

  6. C#/Sqlite-SQLite PetaPoco django 打造桌面程序

    为什么是 SQLite? 在以前的程序中, 我通常会使用 MySQL. 如果使用你程序的用户是一个软件小白, 而且远在另一个城市, 那么让她安装和部署 MySQL 将是一场噩梦: 她需要配置服务, 面 ...

  7. 微型ORM:PetaPoco 学习资料整理

    github地址:https://github.com/CollaboratingPlatypus/PetaPoco petapoco 实体中字段去掉关联(类似于EF中的NotMap) 微型ORM:P ...

  8. .NET Core ORM 类库Petapoco中对分页Page添加Order By对查询的影响

    最近一直在使用Petapoco+Entity Framework Core结合开发一套系统. 使用EFCore进行Code First编码,使用PMC命令生成数据库表的信息. 使用Petapoco进行 ...

  9. 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...

随机推荐

  1. idea建立一个maven项目

    前言:虽然之前实习的时候有过spring框架的实践,但是因为基本上都是在已有的基础上进行修修补补,并没有对Spring框架有深刻的理解.所以从今天起,要从零开始对Spring框架进行学习.在此之前,第 ...

  2. 数学公式 AS3应用

    普通做法: var pA:Point=new Point(100,100); var pB:Point=new Point(300,200); var dx:Number=pA.x-pB.x; var ...

  3. 基于OpenGL编写一个简易的2D渲染框架-01 创建窗口

    最近正在学习OpenGL,我认为学习的最快方法就是做一个小项目了. 如果对OpenGL感兴趣的话,这里推荐一个很好的学习网站 https://learnopengl-cn.github.io/ 我用的 ...

  4. Python中的操作符重载

    运算符重载是指在方法中拦截内置的操作----当类的实例出现在内置操作中,Python会自动调用自定义的办法,并且返回自定义方法的操作结果.     类可以重载python的操作符 操作符重载使我们的对 ...

  5. Spring的国际化(转载)

    1:在MyEclipse下面创建一个test的Web  Project,然后添加Spring相关的文件,在src根目录下创建applicationContext.xml文件. applicationC ...

  6. Haskell语言学习笔记(21)Array

    Ix 数组下标类型 Prelude> :m +Data.Array Prelude Data.Array> data Colour = Red | Orange | Yellow | Gr ...

  7. Html解析类的新选择CsQuery

    今天在做一个html解析的方法,以前用HtmlAgilityPack或Winista.HTMLParser. 现在发现了一个巨好用的项目叫CsQuery,这货据说不仅能解析html还能提取css. 选 ...

  8. Pandas数据规整

    Pandas数据规整 数据分析和建模方面的大量编程工作都是用在数据准备上的,有时候存放在文件或数据库中的数据并不能满足数据处理应用的要求 Pandas提供了一组高级的.灵活的.高效的核心函数和算法,它 ...

  9. org.springframework.stereotype 注解

    org.springframework.stereotype 1.@controller 控制器(注入服务) 2.@service 服务(注入dao) 3.@repository dao(实现dao访 ...

  10. TOMCAT下面发布项目的4种方式

    摘要 TOMCAT下面发布项目的4种方式,可用于在平时资料查询. 第一种方法: 将web项目文件件拷贝到webapps 目录中:或者直接通过Eclipse发布到Tomcat上. 第二种方法: 在tom ...