• dapper的增、删、查改的CodeSmith模板


    <%@ 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('
    ','
    ',',') %>)
          VALUES
            <%
            sbSql.Clear();
            foreach(ColumnSchema col in Table.Columns){ 
                if(!col.IsPrimaryKeyMember){
                     sbSql.AppendLine("@"+col.Name+",");
                }
            }
            %>
            (<%=sbSql.ToString().Trim('
    ','
    ',',') %>)",
            <%
            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('
    ','
    ',',') %>  
     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;
            }
           
            
        }
    }
    

      

  • 相关阅读:
    前端小白之每天学习记录php(2)数据库操作软件
    前端小白之每天学习记录简单的原生js路由
    Dualembedded LSTM for QA match: 双embedding的LSTM聊天匹配式模型
    歌词爬虫
    Web第六周作业:css单位
    一篇无厘头的Roadmap
    web第二周作业:Register Form
    Web第六周作业:position.fixed vs sticky
    Web第六周作业:css颜色表
    Web第三周作业:grid layout
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/5614060.html
Copyright © 2020-2023  润新知