在工做中遇到一個問題。項目有三個數據庫(三個數據庫表結構同樣),用戶能夠選擇使用哪一個數據庫。其實就是動態切換數據庫鏈接。mysql
先來簡單的介紹下mysql使用EntityFramework來操做數據庫。
直接上代碼:sql
這樣就能夠來使用Entityframework來訪問mysql數據了。數據庫
從DbContext構造函數的方法簽名能夠看出端倪。
能夠看出咱們傳數據庫鏈接字符串名字和直接傳數據庫鏈接字符串都是能夠的。EntityFramework會去作判斷,若是是name,再去配置文件取數據庫鏈接字符串和providerName。若是是數據庫鏈接字符串則直接拿來用。ide
其實EntityFramework對mysql的支持並非很好,還有些bug。我在進行以上實驗的時候遇到了一個問題。當我直接將數據庫鏈接字符串的傳到父類的構造函數時,報了: Keyword not supported:'port'錯誤。通過一番查找,最終找到三個方案:https://stackoverflow.com/questions/45217166/c-sharp-entity-framework-keyword-not-supported-port。
遇到坑的童鞋們能夠去看下。函數