輸入ADO.NET調用使用注意事項
ADO.NET調用自從出道的時候,總是不好使。為什么大家針對數據庫訪問,習慣性的想到SQL;而在ADO.NET調用的時候,大家已經對LINQ有所了解,因此,針對實體的訪問。
相對于SQL,eSQL提供了對實體的很好的支持——這是SQL所不具備的(歷史原因 ^_^)。SQL查詢出來的是行,ADO.NET調用則可以直接查詢出實體集。eSQL直接支持EDM中的類型,而SQL不支持(廢話,有SQL的時候,EDM還沒有出世呢)……
相對于自己的哥哥——LinQ,eSQL顯得更為靈活。由于eSQL的查詢語句是個字符串,因此,其十分易于處理。舉個簡單的例子,如果我要寫一個方法,傳入排序的屬性名稱,返回一個按照此屬性排序好的實體集,要用LinQ實現,恐怕有點麻煩,因為,其ADO.NET調用后面,需要跟一個實體類的屬性;然而,在eSQL里,這簡單是輕而易舉的事,只要寫上一個eSQL語句,把排序位置留為{0},然后進行字符串替換,這一功能就完成了——好像比較難說明白,沒有關系,后面的示例代碼里有相關的部分。
總之,一句話,eSQL是個好東東——因為它是本文介紹的主角^_^。至于到底是不是那么一回事兒,ADO.NET調用大家可以試一下本文的示例,然后,根據自己的理解來酌情運用。
- 'Using EntityCommand Interface
- Private Sub QueryESql1()
- Using eConn As New EntityConnection(ConnString)
- Dim myQuery = "{0,1,2,3}"
- Using cmd As New EntityCommand(myQuery, eConn)
- eConn.Open()
- Using reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess) While (reader.Read())
- Console.WriteLine(reader.GetValue(0))
- End While
- End Using
- End Using
- End Using
- End Sub
三、eSQL的使用方法
EF為eSQL提供了兩套接口:Entity Command接口和ObjectQuery接口。讓我們首先來了解一下這兩套接口的使用模式:
Entity Command接口:
首先,通過預先配置好的連接字符串,創建一個EntityConnection類型的連接ADO.NET調用;
然后,定義查詢語句#t#
步,通過連接和查詢語句,創建一個EntityCommand的對象cmd;
第四步,打開連接,讀取數據。
這一接口形式,更接近于傳統的ADO.NET調用形式。