Dapper實現一對多物件關係聚合導航屬性

2022-02-25 01:33:28 字數 1519 閱讀 2029

領域物件:game(遊戲), room(遊戲群),兩者一對多的關係,sql語句中會用到join

public

class

game : aggregateroot

public

string title

public

string description

public ienumerablerooms

public

game()

public

void setrooms(ienumerablerooms)

}public

class

room : entity

public intstring name

public

int limit

public

string owner

}

所以我們擴充套件兩個query/queryasync方法:

///

///查詢帶聚合導航屬性的物件集合

//////

主體物件型別

///聚合導航物件型別

///設定聚合導航屬性的方法

public

static ienumerablequery(this idbconnection cnn, string sql, actionsetting, object param = null, string spliton = "id"

)

where tfirst : class, ientity

where tsecond : class, ientity, param: param, spliton: spliton);

return

hashes;

}///

///非同步查詢帶聚合導航屬性的物件集合

//////

主體物件型別

///聚合導航物件型別

///設定聚合導航屬性的方法

public

static

async task> queryasync(this idbconnection cnn, string sql, actionsetting, object param = null, string spliton = "id"

)

where tfirst : class, ientity

where tsecond : class, ientity, param: param, spliton: spliton);

return

hashes;

}

呼叫示例:

return

await _db.queryasync("

select * from game g left join room r on r.gameid = g.id

", (game, room) =>);

}, spliton: "id

");

Slapper幫助Dapper實現一對多

1對1public class employees4list public string name public string mobile public department4employees department public class role4employees public strin...

MySQL關係 一對多 一對一 多對多

將實體與實體的關係,反應到最終資料庫表的設計上,將關係分為三種 一對一,一對多 多對一 和多對多,所有的關係都是表與表之間的關係 一對一 一對一 一張表的一條記錄只能與另外一條記錄進行對應,反之亦然 id p 姓名 性別 年齡 身高 婚姻狀況 籍貫 家庭位址 緊急聯絡人 體重 表設計成以上這種形式 ...

ibatis 物件關係實現,一對多,多對一

hibernate 的強大在於完全的物件化,對於物件之間的關係解決的比較好,如1對1,1對多,多對1,以及多對多。當然也包括繼承關係。而ibatis這方面就比較遜色了,不過對於也支援簡單的關連查詢,如1對1,和1對多。對於一般的情況來說,這兩種已經足夠了,當然不能層疊更新是乙個缺陷,看了半天文件,也...