亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多映射器創建對象層次結構

多映射器創建對象層次結構

翻閱古今 2019-11-22 14:04:27
我一直在玩這個游戲,因為它看起來很像所記錄的帖子/用戶示例,但它略有不同,對我不起作用。假定以下簡化設置(聯系人具有多個電話號碼):public class Contact{    public int ContactID { get; set; }    public string ContactName { get; set; }    public IEnumerable<Phone> Phones { get; set; }}public class Phone{    public int PhoneId { get; set; }    public int ContactID { get; set; } // foreign key    public string Number { get; set; }    public string Type { get; set; }    public bool IsActive { get; set; }}我很樂意以返回帶有多個Phone對象的Contact的結尾。這樣,如果我有2個聯系人,每個聯系人有2部手機,那么我的SQL將返回這些聯系人的聯接,結果集共有4行。然后Dapper將彈出兩個帶有兩個電話的聯系人對象。這是存儲過程中的SQL:SELECT *FROM Contacts    LEFT OUTER JOIN Phones ON Phones.ReferenceId=Contacts.ReferenceIdWHERE clientid=1我嘗試了一下,但最終得到了4個元組(這是可以的,但是不是我想要的...這只是意味著我仍然必須對結果進行重新規范化):var x = cn.Query<Contact, Phone, Tuple<Contact, Phone>>("sproc_Contacts_SelectByClient",                              (co, ph) => Tuple.Create(co, ph),                                           splitOn: "PhoneId", param: p,                                           commandType: CommandType.StoredProcedure);當我嘗試下面的另一種方法時,出現了一個異?!盁o法將類型為'System.Int32'的對象轉換為類型為'System.Collections.Generic.IEnumerable'1 [Phone]'”。var x = cn.Query<Contact, IEnumerable<Phone>, Contact>("sproc_Contacts_SelectByClient",                               (co, ph) => { co.Phones = ph; return co; },                                              splitOn: "PhoneId", param: p,                                             commandType: CommandType.StoredProcedure);我是在做錯什么嗎?看起來就像帖子/所有者的示例一樣,只是我要從父級轉到子級,而不是從子級轉到父級。
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 666 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號