ef支持的資料庫
『壹』 用EF連接Oracle資料庫,運行報錯
資料庫為Oracle,就不要使用EF了。
問題已經很明顯。「Make sure the provider is registered in the 'entityFramework' section of the application config file」,就是讓你看看在App.config文件中的<provider>。
【源文件中的內容如下】:
<entityFramework>
<provider invariantName="System.Data.sqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</entityFramework>
按理說,只要將<provider />寫成:
<provider invariantName="Oracle.ManagedDataAccess.Client" type="System.Data.OracleProviderServices, EntityFramework.OracleServer" />
之類即可,但是可悲啊!
目前支持EF6的provider有:
(1)Microsoft SQL Server provider
(2)Microsoft SQL Server Compact Edition provider
(3)Devart dotConnect Data Providers 【注意】
(4)Firebird provider
(5)Visual Fox Pro porvider
(6)MySQL
(7)PostgreSQL
1、2、4、5、7均可以從NuGget中獲取。3、7需要到相應的網站獲取。
注意第三個:這個插件就是用於Oracle資料庫的,其為第三方插件,由Devart公司開發。但有兩大致命缺點:1、收費(是30天免費試用,過了30天要麼卸載,要麼付款)。2、目前支持的Oracle的最高版本為:Oracle8.2i。
『貳』 ef支持sqlite codefirst 嗎
下載system.data.sqlite安裝包,在system.data.sqlite.org上下載對應.NET Framework x.x版本的安裝包。安裝system.data.sqlite,按照提示一步一步執行即可。
下載SQLiteStudio,直接運行exe文件。創建資料庫,以及操作數據表等等。
環境搭建好後就開始創建C#工程了,這里舉例創建了一個Winform工程。在工程里引入system.data.sqlite.dll。注意:引用窗口打開後選擇瀏覽,在安裝目錄下找到dll。默認安裝路徑是 C:\Program Files\System.Data.SQLite\2010\bin。如果不是使用VS2010,路徑會不同
除了引用system.data.sqlite以外,還需要把SQLite.Interop.dll復制到程序根目錄。
5
至此C#操作SQLite的開發環境就搭建好了。
6
異常解決:在實際使用中遇到了Unable to open the database file異常。查找了很久原因,排除了目錄讀寫許可權,連接字元串中增加Pooling=True;Journal Mode=Off;均為解決問題。後來發現我使用的是屬性get來生產連接字元串,改為靜態成員變數就沒有問題了。這個問題還和操作系統有關,在win7上運行沒有問題,在XP和2003上運行才會出現這個問題。
『叄』 如何使用EF處理資料庫中的XML欄位
資料庫欄位類型
XML欄位的操作
資料庫表名是
mengzhuDB
欄位名:PropertyXml
<a>
<b>
<b1>11111</b1>
</b>
</a>
select
PropertyXml.value('(/a/b/b1)[1]','int')
from
mengzhuDB
where
Id='唯一標識'
declare
@a
int
set
@a
=
22222
update
mengzhuDB
set
PropertyXml.modify('replace
value
of
(/a/b/b1/text())[1]
with
"'+@a+'"')
where
Id='唯一標識'
更新後的結果就是
<a>
<b>
<b1>22222</b1>
</b>
</a>
declare
@sqltxt
varchar(1000),@a
int
set
@a=60
set
@sqltxt
='update
mengzhuDB
set
PropertyXml.modify(''replace
value
of
(/a/b/b1/text())[1]
with
"'+CONVERT(varchar(10),@a)+'"'')
where
Id=''唯一標識'''
<a>
<b>
<b1>60</b1>
</b>
</a>
print
@sqltxt
exec
(@sqltxt)
『肆』 使用EF時,涉及到資料庫分庫,分表該怎麼處理
如果你的資料庫自動分的,那麼任何客戶端驅動都沒有必要去管它。如果是手工分的,那麼不就是訪問不同的庫、不同的表嘛。還是要搞清楚前一個問題:你怎樣分。這個不清楚,就等於是在給自己「下套」了,在不知道分庫分表的具體含義時來問這個時髦概念如何用EF來實現,無的放矢了。
『伍』 EF框架的優點是什麼
EF框架的優點如下:
1、應用程序可以通過更加以應用程序為中心的概念性模型(包括具有繼承性、復雜成員和關系的類型)來工作。
2、應用程序不再對特定的數據引擎或存儲架構具有硬編碼依賴性。可以在不更改應用程序代碼的情況下更改概念性模型與特定於存儲的架構之間的映射。
3、開發人員可以使用可映射到各種存儲架構(可能在不同的資料庫管理系統中實現)的一致的應用程序對象模型。
4、多個概念性模型可以映射到同一個存儲架構。語言集成查詢支持可為查詢提供針對概念性模型的編譯時語法驗證。
EF框架可以理解成微軟的一個ORM產品,用於支持開發人員通過對概念性應用程序模型編程來創建數據訪問應用程序,目標是降低面向數據的應用程序所需的代碼量並減輕維護工作。
(5)ef支持的資料庫擴展閱讀:
EF框架的缺點:
非SQL Server資料庫且無該資料庫的DataProvider。
高性能要求。在進行一些復雜查詢的情況下,EF的性能表現不太好,而開發人員又無法控制SQL語句的生成
高安全性要求。有時候DB用戶僅僅具有EXEC的許可權,而EF自動生成的類又不好用,還是需要自己來寫。
EF框架常見的模型:
帶有有效載荷的多對多關系建模
在帶有有效栽花的多對多關系資料庫中 ,關系表除了主鍵外 ,還有其他數據欄位。在這種關系中 ,直接把表映射到實體模型中 ,兩實體表自動創建對應的實體類型 ,而關系表也被映射成為一實體類型 ,在此實體類型中除了原有屬性名 ,還有對應兩實體表的導航屬性 ,可分別通過 1 對多關系進行對象導航。
自引用關系建模
對於分類表之類的自引用表 ,把表映射成為實體類型後 ,其中將包含兩個導航屬性 分別對應父、子對象 ,其中父對象為 1 端 ,多端為子對象集合 ,因此分別把 1 端改名為父端名稱如Parent Category,多端改名為子對象集合名稱如 Sub Categories。由此兩導航屬性可方便地訪問到對應對象。
『陸』 ef 來自資料庫的code frist 修改資料庫時怎麼更新
ef 來自資料庫的code frist 修改資料庫時怎麼更新
選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,並使用Windows或 SQL Server身份驗證建立連接。
在【對象資源管理器】窗口中展開伺服器,然後選擇【資料庫】節點
右鍵單擊【資料庫】節點,從彈出來的快捷菜單中選擇【新建資料庫】命令。