<%@ Template Language="C#" TargetLanguage="Text" %>
<%@ Property Name="BaseNamespace" Type="String" %>
<%@ Property Name="SourceDatabase" Type="SchemaExplorer.DatabaseSchema" Category="Context" Description="Database that the documentation should be based on." %>
<%-- 要打印的表 --%>
<%@ Property Name="Table" Type="TableSchema" DeepLoad="True" Optional="False" Category="Context" Description="" %> <%@ Assembly Name="SchemaExplorer" %>
<%@ Assembly Name="System.Design" %>
<%@ Import Namespace="SchemaExplorer" %> using System;
using System.Collections.Generic;
using System.linq;
using System.Text;
using <%=BaseNamespace%>.Model;
using Dapper;
using MayHuan.Data;
using System.Collections; namespace <%=BaseNamespace%>.Services
{
public class <%= Table.Name%>Service:I<%= Table.Name%>
{
public bool Delete(M<%= Table.Name%> model)
{
using (var conn = DBCommon.GetConn())
{
conn.Open();
var a = conn.Execute(@"Delete from <%= Table.Name%> where OID=@OID", new { OID = model.OID });
conn.Close();
return a > 0;
}
} public bool Insert(M<%= Table.Name%> model)
{
using (var conn = DBCommon.GetConn())
{
conn.Open();
var a = conn.Execute(@"INSERT INTO <%= Table.Name%>
<%
System.Text.StringBuilder sbSql=new System.Text.StringBuilder();
%>
<% foreach(ColumnSchema col in Table.Columns){
if(!col.IsPrimaryKeyMember){
sbSql.AppendLine(col.Name+",");
}
}
%>
(<%=sbSql.ToString().Trim('\r','\n',',') %>)
VALUES
<%
sbSql.Clear();
foreach(ColumnSchema col in Table.Columns){
if(!col.IsPrimaryKeyMember){
sbSql.AppendLine("@"+col.Name+",");
}
}
%>
(<%=sbSql.ToString().Trim('\r','\n',',') %>)",
<%
sbSql.Clear();
foreach(ColumnSchema col in Table.Columns){
if(!col.IsPrimaryKeyMember){
sbSql.Append(col.Name+" = model."+col.Name+",");
}
}
%>
new { <%=sbSql.ToString().Trim(',') %> });
conn.Close();
return a > 0;
}
} public bool Update(M<%= Table.Name%> model)
{
using (var conn = DBCommon.GetConn())
{
conn.Open();
var a = conn.Execute(@"UPDATE <%= Table.Name%> SET
<%
sbSql.Clear();
foreach(ColumnSchema col in Table.Columns){
if(!col.IsPrimaryKeyMember){
sbSql.AppendLine(col.Name+"=@"+col.Name+",");
}
}
%>
<%=sbSql.ToString().Trim('\r','\n',',') %>
WHERE OID=@OID",
<%
sbSql.Clear();
foreach(ColumnSchema col in Table.Columns){
if(!col.IsPrimaryKeyMember){
sbSql.Append(col.Name+" = model."+col.Name+",");
}
}
%>
new { <%=sbSql.ToString().Trim(',') %>,OID = model.OID });
conn.Close();
return a > 0;
}
} public M<%= Table.Name%> GetModelByID(int id)
{
using (var conn = DBCommon.GetConn())
{
conn.Open();
var a = conn.Query<M<%= Table.Name%>>(@"select * from <%= Table.Name%> where OID=@OID", new { OID =id }).FirstOrDefault();
conn.Close();
return a;
}
} public Model.PageDataView<M<%= Table.Name%>> GetList(string companyName, int pageNum, int pageSize = 10)
{
var criteria = new PageCriteria();
criteria.CurrentPage = pageNum;
criteria.Fields = "a.*";
criteria.PageSize = pageSize;
criteria.PrimaryKey = "a.OID";
criteria.TableName = @"<%= Table.Name%> a"; string sqlFilter = "1=1";
if (!string.IsNullOrEmpty(companyName))
sqlFilter += string.Format(" and b.CompanyName like '%{0}%'", companyName);
criteria.Condition += sqlFilter; var r = DBCommon.GetPageData<M<%= Table.Name%>>(criteria); return r;
} }
}

  

dapper的增、删、查改的CodeSmith模板的更多相关文章

  1. WindowsForm 增 删 查 改

    首先是连接数据库  在数据库里写代码 建立一个数据库下面是代码 create database JinXiaoCun go use JinXiaoCun go create table users ( ...

  2. 【基础篇】js对本地文件增删改查--改

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  3. 使用轻量级ORM Dapper进行增删改查

      项目背景 前一段时间,开始做一个项目,在考虑数据访问层是考虑技术选型,考虑过原始的ADO.NET.微软的EF.NH等.再跟经理讨论后,经理强调不要用Ef,NH做ORM,后期的sql优化不好做,公司 ...

  4. Dapper.Contrib——更加优雅地使用Dapper进行增删改查

    简介 Dapper是介于Entity framework与ADO的折中选择.既满足手写查询的高性能需求,又简化了数据库对象映射为内存对象的繁杂工作.Dapper.Contrib是对Dapper的进一步 ...

  5. Dapper进行增删改查 z

    http://www.cnblogs.com/huangkaiyan10/p/4640548.html 项目背景 前一段时间,开始做一个项目,在考虑数据访问层是考虑技术选型,考虑过原始的ADO.NET ...

  6. Sqlserver 增删改查----改

    --我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id ,) NOT NULL,--学校id 自增量 YuanXiName varchar() null, ...

  7. PHP数据库的 增 删 查

    一.匹配数据库登录 步骤: 1.做一个普通的登录界面,注意提交方式为post. <!--登录界面--> <form action="chuli.php" meth ...

  8. Dapper基本增删改查

    说明: 1.在using语句块中不用dbConnection.Open(),因为Execute方法中会Open,并且在执行完成会Close. 2.在Ado.Net中要手动Open,在Using语句块中 ...

  9. .net Core+Dapper MySQL增删改查

    新建一个用户表,以该有为例 1.Model层 public class TuiUsers { public int id { get; set; } public string userName { ...

随机推荐

  1. dissmiss a UISearchBar with an SearchBarController

    If you want do dissmiss a UISearchBar with an SearchBarController, just use this Code: [self.searchD ...

  2. [转帖]HOWTO rename column name in Sqlite3 database

    原文在此 Say you have a table and need to rename "colb" to "col_b": First you rename ...

  3. iOS开发- Xcode 7添加pch文件

    1.打开你的Xcode工程. 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点 ...

  4. HDU 3487 Play with Chain(Splay)

    题目大意 给一个数列,初始时为 1, 2, 3, ..., n,现在有两种共 m 个操作 操作1. CUT a b c 表示把数列中第 a 个到第 b 个从原数列中删除得到一个新数列,并将它添加到新数 ...

  5. python高效解析日志入库

    python脚本解析日志文件入库一般有三个重要的步骤:读文件.解析文件.入库.在这三个方面下功夫,可确保我们获得最优的性能(这里不讨论并发) 1 读文件:一次读一行,磁盘IO太多,效率低下:一次性读如 ...

  6. 关于js中的几个小问题。

    问题1: 使用连续赋值后面的变量会成为全局对象的一个属性,并且这个属性可以通过delete删除. 原因:赋值语句是从右往左执行的,我们将10赋值给了c,但是c此时还声明,接着把c的返回值赋值给了b,但 ...

  7. C#读写Json

    C#处理json文件主要有两种方式: (1)使用JavaScriptSerializer类,需要引入System.Web.Extension库,并添加下面两个引用: using System.Web; ...

  8. 使用TFS+GIT实现分布式项目管理

    前言 GIT是近来很流行的一种版本控制系统,是Linux内核之父Linus Torvalds为了管理Linux内核的开发而开发的一种开源的版本控制工具. GIT相比传统的版本控制工具最大的优点是实现了 ...

  9. [Python] Keep efficient by vim in Pycharm

    From: http://blog.csdn.net/u013088062/article/details/50144201 From: http://blog.csdn.net/u013088062 ...

  10. [Architect] Abp 框架原理解析(1) Module

    本节目录 Abp介绍 Abp源码分析 代码实现 Abp介绍 学习了一段时间的Abp,领略了一下前辈的架构.总结还是SOLID,降低耦合性. 虽然从架构上说甚至不依赖于DI框架,但实际上在基础框架中还是 ...