<%@ 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. ITF Demo代码(用VBScript构建的接口测试框架)

    ITF Demo代码(用VBScript构建的接口测试框架) http://blog.csdn.net/testing_is_believing/article/details/20872629

  2. Unity3d删除无用的美术资源

    这个插件是我在国外网站逛论坛发现的,试用了一下非常好用,是一个轻量级的插件就一个类.开发中尤其是和美术合作的时候,可能你会发现Project视图中有很多没有用到的资源,但是你又不敢删除,因为你不知道那 ...

  3. merge 实现

    今天写了个小程序,做两个已经从小到大排序好的数据的merge. 要求: listA = (1, 3, 5, 10); listB = (4, 6, 12):listA 和listB都是排序由小到大的列 ...

  4. 重构第3天:方法提公(Pull Up Method)

    理解:方法提公,或者说把方法提到基类中. 详解:如果大于一个继承类都要用到同一个方法,那么我们就可以把这个方法提出来放到基类中.这样不仅减少代码量,而且提高了代码的重用性. 看重构前的代码: usin ...

  5. 在ubuntu下配置apache运行python脚本

    2008-12-05    常用的简单命令 sudo apt-get remove --purge apache apache2 (彻底删除)   sudo /etc/init.d/apache2 r ...

  6. 二十四、【开源】EFW框架Winform前端开发之项目结构说明和调试方法

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan ...

  7. easyui textbox event 添加

    $('#tt').textbox({ inputEvents:$.extend({},$.fn.textbox.defaults.inputEvents,{ keyup:function(e){ co ...

  8. 比较几种工具Python(x,y) Anaconda WinPython

    浏览了一些相关的论坛,将几大工具的特点分别总结下: Python(x,y) 更新很慢,稳定性一般,默认带有很多包. WinPython  只能在windows上跑,界面友好,和Python(x,y)是 ...

  9. LOD设置

    Level of detail: 使用多个不同复杂度的mesh来表示一个object,当物体离摄像机越远时,就是用更加low-detail的mesh,反之越近就越使用越精细的mesh. 组件:LOD ...

  10. WINDOWS 2008Server 配置nginx 反向代理服务器

    本案例有用过可行 0.先要在域名官网上面配置域名对应的IP地址,然后要在自己路由器上面将80端口映射到要装nginx服务器的IP地址. 1.从官网上面下载nginx1.6.2   WINDOWS版本的 ...