zoukankan      html  css  js  c++  java
  • 关于Dapper的使用笔记2

    1 在实体定义中标示字段名:

    public class t_SoDtl
    {
        [System.ComponentModel.Description("KeySeq")]
        public Guid ID { get; set; } //数据库中的列名KeySeq
    
        [System.ComponentModel.Description("SoKeySeq")]
        public Guid SoKeySeq { get; set; }
    
        [System.ComponentModel.Description("ItemId")]
        public string ItemNo { get; set; }
    
        [System.ComponentModel.Description("ItemName")]
        public string ItemName { get; set; }
    
        [System.ComponentModel.Description("Price")]
        public decimal Price { get; set; }
    
        [System.ComponentModel.Description("Qty")]
        public decimal Quality { get; set; }//数据库中的列名Qty
    
        [System.ComponentModel.Description("Amount")]
        public decimal Amount { get; set; }
    }

    2、建立自定义映射 SqlMapper.ITypeMap ---> CustomPropertyTypeMap

    var map = new CustomPropertyTypeMap(typeof(t_SoDtl),
    (type, columnName) => type.GetProperties()
        .Where(prop => prop.GetCustomAttributes(false).OfType<DescriptionAttribute>().Any(attr => attr.Description == columnName)) //找出Decsription = Column的属性
        .FirstOrDefault());
    
    Dapper.SqlMapper.SetTypeMap(typeof(t_SoDtl), map);

    3、效果测试

    //查询
    DbConnection con = this.GetConnection();
    return con.Query<t_SoDtl>("select * from dbo.t_SoDtl where SoKeySeq = @SoKeySeq", new {SoKeySeq = soKeySeq}).ToList();
    
    //插入 (注意参数的名称与实体属性的对应)
    string strSQL = @"
    INSERT INTO dbo.t_so(KeySeq,SoNo,SoDate,CustomerName,Remark)
    VALUES(@KeySeq,@SoNo,@SoDate,@CustomerName,@Remark)";
    
    DbConnection con = this.GetConnection();
    //con.Execute(strSQL, new {KeySeq = so.KeySeq, SoNo = so.SoNo, SoDate = so.SoDate, CustomerName = so.CustomerName, Remark = so.Remark});
    con.Execute(strSQL, so);
  • 相关阅读:
    架构之道(1)
    看板管理(1)
    交互原型图
    Sequence Diagram时序图
    安卓项目的「轻」架构
    安卓ButtomBar实现方法
    工具类BitMap 把网络URL图片转换成BitMap
    使用OkHttp上传图片到服务器
    BaseAdapter教程(2) BaseAdapter的notifyDataSetChanged动态刷新
    开发中时间变换问题汇总
  • 原文地址:https://www.cnblogs.com/shi5588/p/4126873.html
Copyright © 2011-2022 走看看