Dapper 巢狀物件查詢

2021-10-06 03:26:38 字數 1994 閱讀 3141

我有這樣乙個一對一關係的表結構:user->userinfo

user:

/// /// 使用者

///

[serializable]

public partial class sysuser

#region model

/// /// 使用者編號

///

public string sysid

/// /// 使用者名稱

///

public string username

/// /// 密碼

///

public string userpwd

/// /// 建立時間

///

public datetime? createtime

/// /// 最後一次登入時間

///

public datetime? lastlogin

/// /// 該條記錄的操作情況,用於記錄最後一次誰在什麼時候建立、修改了該記錄

///

public string recordstatus

/// /// 使用者的詳細資訊

///

public sysuserinfo userinfo

#endregion model

public ienumerableroles

}

userinfo:

/// /// 使用者資訊

///

[serializable]

public partial class sysuserinfo

#region model

/// /// 使用者編號

///

public string sysid

/// /// 真實名字

///

public string realname

/// /// 職位

///

public string title

/// /// 性別

///

public bool ***

/// /// 手機

///

public string phone

/// /// 傳真

///

public string fax

/// /// 郵箱

///

public string email

/// /// qq

///

public string qq

/// /// 位址

///

public string address

#endregion model

}

查詢的具體sql:

select u.createtime,u.lastlogin,u.recordstatus,u.sysid,u.username,u.userpwd,ui.sysid,

ui.address,ui.email,ui.fax,ui.phone,ui.qq,ui.realname,ui.***,ui.title

from sys_user u inner join sys_userinfo ui on u.sysid=ui.sysid inner join sys_userrole ur on

u.sysid=ur.userid inner join sys_role r on ur.roleid = r.sysid

要想把userinfo的資料填充到user中,需要用下面的方式實現:

connection.query(

constant.procgetlist,

(u, ui) =>

,p,spliton:"sysid",

commandtype: commandtype.storedprocedure);

此處要注意的就是spliton,他其它是分割子物件的屬性。

dapper 多對多查詢物件和物件列表

spliton引數 用來指定列為分隔列,之前的列為前一物件,之後的列為後一物件。lookup用來儲存中間處理結果,可以理解為將結果歸組出group物件,並為其rightslist新增內容,注意 lookup中新增的是臨時定義的group物件,並在迴圈中將此物件從lookup中取出,為其rightsl...

Dapper解析巢狀的多層實體類

在作專案的時候,我會將一些不涉及查詢的字段,形成json統一存放在乙個欄位中,向下面這樣的來建實體類,public class wechatmodel public wxmpmodel wxmpinfo public class wxmpmodel public string secret publ...

巢狀查詢,巢狀結果

select o.u.username,u.address from orders o,user u where o.user id u.id and o.id 多對多 select u.id,u.username,u.address,o.id order id,o.number,o.createt...