2015-10-28 40 views
0

我一直在尋找通過源代碼,但有這麼一個小的ORM相當數量。調用.Query()後,有什麼方法可以檢索由Dapper返回的查詢的字段結構嗎?基本上,我需要調用GetSchemaTable()時與DataReader返回的數據相同的數據。我可以從Dapper查詢獲取字段結構嗎?

回答

1

這是可以做到如下:

IDataReader dr = _connection.ExecuteReader(sql) 

IDataReader dr = _connection.GetStream(sql) 

現在,您可以撥打dr.GetSchemaTable()來獲得相關的模式:

使用下列電話獲取讀者DataTable 實際上,您可能會輸入相同的DbDataReader類型,如SqlDataReader or OracleDataReader如果你想利用一個GetSchemaTable()

+0

超載所以你怎麼實現它成IEnumerable 或一個特定的類型呢? –

+0

不確定您是否有特定要求通過DataReader創建IEnumerable ,因爲可以使用Dapper Query 調用直接提取。對於從DataReader轉換您需要使用反射,請檢查以下鏈接 - http://www.codeproject.com/Articles/827984/Generically-Populate-List-of-Objects-from-SqlDataR 點仍然存在,創建一個實體,應用屬性映射到從數據庫中提取的列名稱,然後用每次調用DataReader.Read() –

+0

填充對象的每個屬性。但這就是使用Dapper的一點 - 我希望它做映射。我碰巧還需要獲取結果元數據。我想做一個.Query()或.Query <>調用,但是然後檢索關於這個結果的元數據。是的,我可以手動完成所有這些工作,但我寧願不要,如果可能的話(因此問題)。 –

相關問題