![](/img/trans.png)
[英]How do you use Moles to mole DbContext from querying the database in EntityFramework 4.1?
[英]Get the database type from EntityFramework's `DbContext`
問題很簡單:給定一個EntityFramework的DbContext
實例,我想在它所連接的有效數據庫之間做什么。 AFAIK目前有針對SQL Server的EF提供程序的實現,由Microsoft,MySQL,Oracle和Postgres提供。
假設我在我的方法中只“訪問”了DbContext
實例。 我如何檢測到我正在使用MSSQL,MySQL,Postgres等? (我想知道是否有一個用於EF的Oracle客戶端,這會加起來)
目前我可以嘗試一些反思:
DbContext.Connection
通常是EntityConnection
一個實例 EntityConnection
公開StoreConnection
屬性,該屬性應該是我們的ADO連接。 針對已知類(如MySqlConnection
)進行測試應該可行 但是我相信這種方法有點棘手。 普通的App.config包含以下內容:
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
我有點困惑,我希望EF有一個更好的API來檢測數據庫類型,以防需要執行不常見的操作。
我的問題是,是否有一個更簡單的方法。
你用過這個嗎?
DbContext.Database.Connection.GetType().Name
如果是,那么棘手的部分是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.