不卡视频在线观看_三级网站视频在线观看_91精品网站_国产综合一区二区

完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請(qǐng)先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

ad.jpg

二次開(kāi)發(fā)教程:Dapper里使用Attribute自定義映射關(guān)系

發(fā)布于:2019-07-24 16:32:10

網(wǎng)友投稿

更多

目的將book表中的id,name,price 映射到Book類中的Id1,Name1,Price1


    class Program

    {        

        static SQLiteConnection conn;

        static string dbStr = "test.db";

        static void Main(string[] args)

        {

            SqlMapper.SetTypeMap(typeof(Book), new CustomTypeMap<Book>());//定義映射規(guī)則

            SQLiteConnection.CreateFile(dbStr);

            conn = new SQLiteConnection($"Data Source={dbStr};Version=3;");

            string sql = "create table book (id int,name varchar(20), price double)";         

 

            conn.Execute(sql);

            sql = "insert into book values(@id1,@name1,@price1)";

            conn.Execute(sql, new Book());

 

            sql = "select * from book";

            var books = conn.Query<Book>(sql);

 

            Console.ReadLine();

        }

    }

 

    public class Book

    {

        [Column("name")]

        public string Name1 { get; set; }

        [Column("id")]

        public int Id1 { get; set; }

        [Column("price")]

        public double Price1 { get; set; }

    }

 

    public class CustomTypeMap<T> : SqlMapper.ITypeMap

    {

        public ConstructorInfo FindConstructor(string[] names, Type[] types)

        {

            return null;

        }

 

        public ConstructorInfo FindExplicitConstructor()

        {

            return typeof(Book).GetConstructor(new Type[0]);

        }

 

        public SqlMapper.IMemberMap GetConstructorParameter(ConstructorInfo constructor, string columnName)

        {

            return null;

        }

 

        public SqlMapper.IMemberMap GetMember(string columnName)

        {

            return new CustomMemberMap(columnName, _dict[columnName]);

        }

 

        private Dictionary<string, PropertyInfo> _dict = new Dictionary<string, PropertyInfo>();

        public CustomTypeMap()

        {

            Type type = typeof(T);

            var ps = type.GetProperties();

            foreach (var p in ps)

            {

                var at = p.GetCustomAttribute<ColumnAttribute>();

                if (at != null)

                {

                    if (!string.IsNullOrWhiteSpace(at.ColumnName))

                        _dict.Add(at.ColumnName, p);

                }

            }

        }

    }

    [AttributeUsage(AttributeTargets.Property)]

    public class ColumnAttribute : Attribute

    {

        public string ColumnName { get; }

        public ColumnAttribute(string columnName)

        {

            ColumnName = columnName;

        }

    }

 

    public class CustomMemberMap : SqlMapper.IMemberMap

    {

        public CustomMemberMap(string column,PropertyInfo propertyInfo)

        {

            ColumnName = column;

            Property = propertyInfo;

        }

        public string ColumnName { get; }

 

        public Type MemberType => Field?.FieldType ?? Property?.PropertyType ?? Parameter?.ParameterType;

 

        public PropertyInfo Property { get; }

 

        public FieldInfo Field { get; }

 

        public ParameterInfo Parameter { get; }

    }

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:二次開(kāi)發(fā)教程:Hello entity framework

下一篇:二次開(kāi)發(fā)教程:orm 里使用Emit

60acb4e0ef112.png
不卡视频在线观看_三级网站视频在线观看_91精品网站_国产综合一区二区

      日韩一级在线| 国产精品综合色区在线观看| 这里只有精品在线播放| 国产欧美日韩激情| 欧美极品色图| 久久综合五月| 久久久999| 亚洲欧美日韩一区二区三区在线观看| 精品999久久久| 国产精品入口福利| 欧美日韩国产精品一卡| 猛男gaygay欧美视频| 久久精品国产2020观看福利| 亚洲一区视频在线观看视频| 亚洲精品女人| 91久久精品日日躁夜夜躁国产| 国产一区二区欧美| 国产视频一区在线观看一区免费| 欧美体内she精视频| 欧美日韩性生活视频| 欧美精品一区二区三区在线看午夜| 久久影音先锋| 久久综合九色综合欧美就去吻| 久久久久久9| 久久久久久久一区| 玖玖在线精品| 欧美插天视频在线播放| 欧美不卡在线| 欧美黄色日本| 国产精品久久久久久模特 | 一区二区三区毛片| 一区二区三区四区五区精品| 一区二区三区视频在线看| 9久草视频在线视频精品| 一区二区国产精品| 亚洲欧美精品suv| 久久精品72免费观看| 久久久欧美一区二区| 欧美a级一区| 欧美亚洲成人网| 国产一区二区激情| 亚洲缚视频在线观看| 日韩视频免费在线| 亚洲欧美日韩在线| 久久综合九色综合网站| 欧美精品黄色| 国产精品日产欧美久久久久| 国产夜色精品一区二区av| 亚洲二区三区四区| 一区二区精品国产| 久久精品人人做人人爽电影蜜月| 麻豆精品精华液| 欧美亚洲不卡| 在线观看日韩专区| 亚洲欧美日本国产有色| 毛片一区二区| 国产伦精品免费视频| 91久久夜色精品国产九色| 亚洲欧美日韩国产精品| 蜜臀va亚洲va欧美va天堂| 国产精品久久国产愉拍| 一区二区视频欧美| 午夜免费在线观看精品视频| 久久亚洲影音av资源网| 国产精品久久久久久久免费软件 | 欧美一区二视频在线免费观看| 欧美mv日韩mv国产网站| 国产伦精品一区二区三区高清版 | 欧美日韩精品高清| 国产在线日韩| 亚洲一区二区视频| 欧美精品久久久久久久久老牛影院| 国产精品久久久久久影院8一贰佰| 在线看不卡av| 欧美中文字幕在线| 国产精品国内视频| 亚洲精品视频一区| 欧美不卡在线| 尤物九九久久国产精品的特点 | 国产欧美精品一区aⅴ影院| 日韩视频一区二区三区在线播放| 久久久久9999亚洲精品| 国产日韩欧美| 香蕉免费一区二区三区在线观看| 欧美99在线视频观看| 黄色成人av网站| 久久久久国产精品人| 国产精品一区二区三区成人| 一本久久a久久精品亚洲| 欧美国产三级| 亚洲人久久久| 欧美成人一区二免费视频软件| 一区二区视频欧美| 久久深夜福利| 1024亚洲| 欧美高清hd18日本| 亚洲精品在线二区| 欧美日本亚洲视频| 日韩亚洲欧美精品| 欧美性色aⅴ视频一区日韩精品| a91a精品视频在线观看| 欧美日韩精品一区二区三区四区 | 亚洲在线免费观看| 国产精品三级久久久久久电影| 亚洲一区二区三区四区中文 | 欧美色一级片| 亚洲综合色丁香婷婷六月图片| 欧美婷婷六月丁香综合色| 亚洲欧美国产精品va在线观看| 国产精品国色综合久久| 午夜欧美精品| 在线观看成人小视频| 欧美福利在线| 亚洲免费在线观看视频| 国产日韩三区| 免费观看久久久4p| 一区二区三区 在线观看视| 欧美视频1区| 久久久www成人免费无遮挡大片| 影音先锋日韩有码| 欧美激情成人在线| 亚洲欧美资源在线| 在线播放亚洲| 国产精品久久久久久模特| 久久成人18免费观看| 日韩午夜电影| 国产一区欧美日韩| 欧美日韩另类视频| 久久爱另类一区二区小说| 亚洲日本久久| 国产欧美日韩精品丝袜高跟鞋| 欧美日韩在线一二三| 久久成人av少妇免费| 亚洲剧情一区二区| 国产亚洲欧美色| 欧美日韩综合不卡| 久久伊人免费视频| 亚洲一区二区在线免费观看视频 | 亚洲第一主播视频| 国产精品一区二区视频| 欧美激情精品久久久久久| 亚洲欧美国产日韩天堂区| 亚洲人成亚洲人成在线观看图片| 国产午夜精品久久久久久免费视| 欧美福利一区二区三区| 久久久亚洲综合| 亚洲欧美网站| 亚洲无限乱码一二三四麻| 亚洲国产天堂久久综合| 国产视频一区二区在线观看| 欧美亚州在线观看| 欧美激情性爽国产精品17p| 久久久久网站| 欧美专区在线播放| 午夜精品福利一区二区三区av | 国产精品美女www爽爽爽视频| 欧美成人自拍| 欧美国产极速在线| 老司机久久99久久精品播放免费 | 亚洲精品麻豆| 亚洲高清免费| 永久555www成人免费| 狠狠色伊人亚洲综合网站色| 国产亚洲成人一区| 国产欧美va欧美va香蕉在| 国产精品一二三四| 国产精品丝袜91| 国产精品美女一区二区| 国产精品毛片大码女人| 国产精品人人爽人人做我的可爱 | 亚洲综合三区| 午夜在线一区二区| 午夜在线精品| 久久久久在线观看| 久热精品视频在线| 久久青草福利网站| 欧美a级一区| 欧美日韩激情网| 国产精品久久国产精麻豆99网站| 国产精品久久久久久亚洲调教| 国产精品一区视频| 在线精品在线| 一区电影在线观看| 午夜精品一区二区三区在线播放 | 黄色一区二区三区| 亚洲高清色综合| 日韩视频精品在线| 亚洲欧美综合v| 久久综合九色99| 欧美精品综合| 国产热re99久久6国产精品| 韩国在线视频一区| 99爱精品视频| 欧美在线免费| 欧美日韩国产成人高清视频| 国产精品乱码一区二三区小蝌蚪| 黄色免费成人| 在线亚洲一区| 鲁鲁狠狠狠7777一区二区| 欧美婷婷久久|