Slapper幫助Dapper實現一對多

2022-02-26 08:52:44 字數 1452 閱讀 5166

1對1

public

class

employees4list

public

string name

public

string mobile

public department4employees department

}public

class

role4employees

public

string name

}ienumerable

getemployees()

);

return

list;

}}

1對n但是如果職工類中加入這樣乙個屬性呢 ? public listrole

public

class

employees4list

public

string name

public

string mobile

public listrole

public department4employees department

}public

class

role4employees

public

string name

}public

class

department4employees

public

string name

}

之前看到過這樣乙個方式,但是它是不能像我們想象的那樣工作,這裡如果乙個eemploye有多個角色,那就和原始的sql語句一樣,他會產生重複的記錄

ienumerablegetemployees()

);

return

list;

}}

ienumerablegetemployees()

);typeof(role4employees), new list );

typeof(department4employees), "id"

);

return

list;

}}

通過addidentifier和addidentifier來識別外來鍵是1對1還是1對n,需要注意的是這裡需要對字段取別名,怎麼取呢?

新的名稱以在c#類中欄位名稱+下劃線+導航類的欄位名稱

比如說employees4list中有乙個屬性role要做1對n查詢,通過addidentifiers方法指明需要轉換的型別名稱和主鍵名稱,其次在sql語句中通過

role_id和role_name來取別名,下劃線前面的role來自employees4list的 role屬性,下劃線後面的 id 和 name來自 role4employees

Dapper學習筆記

setdbtype 只需在所有資料庫操作之前執行一次即可 using system using system.data using mysql.data.mysqlclient using ms.base namespace ms.dbutil static mysqlhelper public s...

Dapper學習筆記

2.insert操作 通常來說,有兩種insert操作 1 單條insert操作 update delete同理 這是乙個簡單的引數化insert,而且還可以塞入匿名型別,對吧,跟原始的sqlparameter相比,是不是簡單的多?static void main string args 2 ins...

Dapper的基本使用

個人覺得他非常好用,現在已經取代了原來的sqlhelper。優點 輕量級,單檔案。支援多資料庫。先給出實體類的關係 書和書評是1 n的關係。沿用entity framework的實體類,virtual表示延遲載入,此處忽略 書public class book public int id publi...