亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

輕量的映射工具Assionsoft.AssionMapper

系統 2342 0

這是一個輕量的映射工具,不可與ORM做比較。它不參與到DB。一般用來配合SqlHelper來使用。目前實現的功能有:DataReader到List的映射、

DataReader到T的映射、List到List的映射、T到T的映射、T到數據庫參數的映射。以上這些都是平時操作數據庫工作量最大的部分,而且都是重

復的沒有含量的工作。其實真正寫SQL并不占用多少工作量。

???? 下面來說下如何使用,并寫幾個各個功能下的使用示例。

?????首先下載: Assionsoft.AssionMapper ?程序集,所有映射功能全部在這個程序集下面。不需要進行XML的配置。

?????1、我們不采取XML配置的映射形式,而是在實體類上標上特性的方式。通過元數據標識映射。比如下面的學生實體:

[ResultMap( " SysNo " )] // 參與單體DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ResultsMap( " SysNo " )] // 參與集合DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ObjectMap] // 參與對象映射
????????[ParameterMap] // 參與數據庫參數映射
???????? public ? int ?SysNo?{? get ;? set ;?}
????????[ResultMap(
" Name " )] // 參與單體DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ResultsMap( " Name " )] // 參與集合DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ObjectMap] // 參與對象映射
????????[ParameterMap( " Name " )] // 參與數據庫參數映射
???????? public ? string ?Name?{? get ;? set ;?}
????????[ResultMap(
" Gender " )] // 參與單體DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ResultsMap( " Gender " )] // 參與集合DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ObjectMap] // 參與對象映射
????????[ParameterMap] // 參與數據庫參數映射
???????? public ? bool ?Gender?{? get ;? set ;?}
????????[ResultMap(
" Age " )] // 參與單體DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ResultsMap( " Age " )] // 參與集合DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ObjectMap] // 參與對象映射
????????[ParameterMap] // 參與數據庫參數映射
???????? public ? int ?Age?{? get ;? set ;?}
????????[ResultMap(
" Birthday " )] // 參與單體DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ResultsMap( " Birthday " )] // 參與集合DataReader返回映射,如果[ResultMap]無參則默認已屬性名匹配
????????[ObjectMap] // 參與對象映射
????????[ParameterMap] // 參與數據庫參數映射
???????? public ?DateTime?Birthday?{? get ;? set ;?}

?????? 2、數據庫插入增、刪、改的參數映射,我們通過委托把Common.Parameter.AddWithValue傳給方法進行與student的映射。

Student?student? = ? new ?Student()?{?Name? = ? " 張三 " ,?Gender? = ? true ,?Age? = ? 25 ,?Birthday? = ?DateTime.Now?};
????????????SqlConnection?conn?
= ? new ?SqlConnection( " server=ASSIONYANG-PCJ\\SQLEXPRESS;uid=sa;pwd=123;database=Testing " );
????????????conn.Open();
????????????SqlCommand?cmd?
= ? new ?SqlCommand();
????????????cmd.Connection?
= ?conn;
????????????cmd.CommandText?
= ? " INSERT?INTO?([Name],[Gender],[Age],[Birthday])?VALUES?(@Name,@Gender,@Age,@Birthday) " ;
????????????ParameterMap.SqlParameterMap
< Student > (cmd.Parameters.AddWithValue,?student); // 生成數據庫參數
????????????cmd.ExecuteNonQuery();
????????????cmd.Parameters.Clear();
????????????conn.Close();

???????????? 3、DataReader返回集合的映射

IList < Student > ?studentList? = ? new ?List < Student > ();
????????????SqlConnection?conn?
= ? new ?SqlConnection( " server=ASSIONYANG-PCJ\\SQLEXPRESS;uid=sa;pwd=123;database=Testing " );
????????????conn.Open();
????????????SqlCommand?cmd?
= ? new ?SqlCommand();
????????????cmd.Connection?
= ?conn;
????????????cmd.CommandText?
= ? " SELECT?[SysNo],[Name],[Gender],[Age],[Birthday]?FROM?Student?ORDER?BY?[SysNo]?DESC " ;
????????????SqlDataReader?dataReader?
= ?cmd.ExecuteReader();
????????????studentList?
= ?ResultMap.GetIList < Student > (dataReader); // 從DataReader返回實體集合
????????????dataReader.Close();
????????????conn.Close();

?????????????? 4、DataReader 返回實體的映射

????????????Student?student? = ? new ?Student();
????????????SqlConnection?conn?
= ? new ?SqlConnection( " server=ASSIONYANG-PCJ\\SQLEXPRESS;uid=sa;pwd=123;database=Testing " );
????????????conn.Open();
????????????SqlCommand?cmd?
= ? new ?SqlCommand();
????????????cmd.Connection?
= ?conn;
????????????cmd.CommandText?
= ? " SELECT?[SysNo],[Name],[Gender],[Age],[Birthday]?FROM?Student?WHERE?[SysNo]=@SysNo " ;
????????????ParameterMap.SqlParameterMap
< Student > (cmd.Parameters.AddWithValue,?student);
????????????SqlDataReader?dataReader?
= ?cmd.ExecuteReader();
????????????student?
= ?ResultMap.Load < Student > (dataReader); // 從DataReader返回單個實體
????????????dataReader.Close();
????????????conn.Close();

??????????????? 5、集合TO 集合的映射

????????????IList < Student > ?studentList? = ? new ?List < Student > ();
????????????IList
< Student > ?studentResultList? = ? new ?List < Student > ();
????????????studentResultList?
= ?ResultMap.GetIList < Student,?Student > (studentList); // 從集合返回集合

???????????????? 6、實體TO 實體的映射

????????????Student?student? = ? new ?Student();
????????????Student?studentResult?
= ? new ?Student();
????????????studentResult?
= ?ResultMap.Load < Student,?Student > (student); // 從實體返回實體

輕量的映射工具Assionsoft.AssionMapper


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91资源| 日韩精品一区二区三区中文3d | 国产精品视频自拍 | 亚洲人成亚洲精品 | 亚洲精品美女视频 | 狠狠干天天爽 | 亚洲精品高清久久 | 日韩欧美亚洲一区 | 免费一级毛片在线播放欧美 | 亚洲精品第一综合99久久 | 成人免费www在线高清观看 | 大胆国模一区二区三区伊人 | 天天爽天天干天天操 | 九九线精品视频 | 午夜在线播放免费高清观看 | 久久这里有精品 | 五月天婷婷免费观看视频在线 | 91精品国产乱码在线观看 | 99免费在线观看视频 | 欧美一区二区三区播放 | 一本一道久久 | 国产成人久久精品二区三区牛 | 国产精品免费在线播放 | 日韩性大片免费 | 国产成人乱码一区二区三区在线 | 天天色天天干天天射 | 日本人xxxxxxx中国 | 精品国产高清a毛片无毒不卡 | 国产精品久久99 | 国产区1 | 国产99视频精品免视看7 | 最新国产三级久久 | 奇米777四色影视在线看 | 国内拍拍自拍视频在线观看 | 天天干天天干天天色 | 一级做性色a爱片久久片 | 日本黄黄| 中文字幕一区在线播放 | 深夜免费在线视频 | 人人舔人人插 | 97久草|