資料庫連線字串(EF)

2021-06-20 02:36:40 字數 4224 閱讀 9793



實體框架允許從配置檔案指定大量設定。一般來說,ef 遵循「約定先於配置」的原則。本文討論的所有設定都有預設行為,您只需負責在預設值不再能夠滿足需求時更改設定。

所有這些設定都可以使用**來應用。配置檔案選項可用於在部署期間輕鬆更改這些設定,而無需更新**。

當您安裝 entityframework nuget 包時,entityframework一節已自動新增到專案的配置檔案中。

<?xml version="1.0"

encoding="utf-8"

?>

"entityframework"

type="system.data.entity.internal.configfile.entityframeworksection, entityframework, version=4.3.0.0, culture=neutral, publickeytoken=b77a5c561934e089"

/>

本頁提供了有關實體框架如何確定要使用的資料庫的更多詳細資訊,包括配置檔案中的連線字串。

連線字串將存入標準connectionstrings元素中,無需entityframework配置節。

基於 code first 的模型使用一般 ado.net 連線字串。例如:

"blogcontext"

providername="system.data.sqlclient"

connectionstring="server=.\sqlexpress;database=blogging;integrated security=true;"

/>

基於 ef 設計器的模型使用特殊 ef 連線字串。例如:

"blogcontext"

connectionstring="metadata=res://*/bloggingmodel.csdl|

res://*/bloggingmodel.ssdl|

res://*/bloggingmodel.msl;

provider=system.data.sqlclient

provider connectionstring=

"data source=(localdb)\v11.0

;initial catalog=blogging;

integrated security=true;

multipleactiveresultsets=true;""

providername="system.data.entityclient"

/>

該配置節允許您指定 code first 用來查詢要用於上下文的資料庫的預設連線工廠。僅在沒有為上下文在配置檔案中新增連線字串時,才會用到預設連線工廠。

當您安裝 ef nuget 包時,已註冊乙個指向 sql express 或 localdb(取決於您安裝的資料庫產品)的預設連線工廠。

要設定連線工廠,請在deafultconnectionfactory元素中指定程式集限定型別名。

注意:程式集限定名是命名空間限定名,後跟乙個逗號,然後是該型別所在的程式集。您還可以選擇指定程式集版本、區域性和公鑰令牌。

下面是您自己的預設連線工廠的設定示例:

"mynamespace.mycustomfactory, myassembly"

/>

以上示例要求該自定義工廠具有無引數建構函式。如果需要,您可以使用parameters元素指定構造函式引數。

例如包含在實體框架中的 sqlceconnectionfactory 要求您向建構函式提供乙個提供程式固定名稱。提供程式固定名稱指示您要使用的 sql compact 的版本。以下配置將使上下文在預設情況下使用 sql compact 4.0 版。

"system.data.entity.infrastructure.sqlceconnectionfactory, entityframework"

>

"system.data.sqlserverce.4.0"

/>

如果您不設定預設連線工廠,則 code first 將使用指向 .\sqlexpress 的 sqlconnectionfactory。sqlconnectionfactory 也有乙個可用來覆蓋連線字串部分的建構函式。如果想使用 sql server 例項而不是 .\sqlexpress,可使用此建構函式來設定伺服器。

以下配置將使 code first 對沒有顯式設定連線字串的上下文使用mydatabaseserver

"system.data.entity.infrastructure.sqlconnectionfactory, entityframework"

>

"data source=mydatabaseserver; integrated security=true; multipleactiveresultsets=true"

/>

預設情況下,將假定構造函式引數的型別為字串。您可以使用 type 特性來進行更改。

"2"

type="system.int32"

/>

資料庫初始值設定項針對每個上下文配置。可以使用context元素在配置檔案中設定它們。此元素使用程式集限定名來指示要配置的上下文。

預設情況下,code first 上下文配置為使用 createdatabaseifnotexists 初始值設定項。context元素有乙個可用於禁用資料庫初始化的disabledatabaseinitialization特性。

例如,以下配置禁用在 myassembly.dll 中定義的 blogging.blogcontext 上下文的資料庫初始化。

" blogging.blogcontext, myassembly"

disabledatabaseinitialization="true"

/>

可以使用databaseinitializer元素設定自定義初始值設定項。

" blogging.blogcontext, myassembly"

>

"blogging.mycustombloginitializer, myassembly"

/>

構造函式引數使用與預設連線工廠相同的語法。

" blogging.blogcontext, myassembly"

>

"blogging.mycustombloginitializer, myassembly"

>

"myconstructorparameter"

/>

可以配置在實體框架中包括的泛型資料庫初始值設定項之一。type特性對泛型型別使用 .net framework 格式。

例如,如果您要使用 code first 遷移,則可以使用 migratedatabasetolatestversion初始值設定項將資料庫配置為自動遷移。

"blogging.blogcontext, myassembly"

>

"system.data.entity.migratedatabasetolatestversion`2[[blogging.blogcontext, myassembly], [blogging.migrations.configuration, myassembly]], entityframework"

/>

ef 資料庫連線字串加密

這一節提供乙個簡單的功能,這個功能看似簡單,找了一下沒找到ef鏈結資料庫串的加密幫助文件,只能自己寫了,這樣也更加符合自己的加密要求 這是我選擇加密aes的理由,當然你可以選擇其他有名的加密演算法,比如md5,sha,3des.注 大公司應該都是禁止自行寫演算法的來加解密的 資料的使用跟我們登入流程...

資料庫連線字串 EXCEL 連線字串

odbc 標準driver driverid 790 dbq c myexcel.xls defaultdir c mypath sql表示式 select from sheet1 例如 在excel工作表名稱後面跟 字元並且使用 將其括起來。ole db 標準provider microsoft....

資料庫連線字串 Oracle 連線字串

odbc 新版本driver server myserveraddress uid myusername pwd mypassword 舊版本driver connectstring oracleserver.world uid myusername pwd mypassword ole db,ol...