Entity Framework 配置檔案設定

2021-09-28 20:33:08 字數 2755 閱讀 7973

可以使用配置檔案或**(ef6起)配置ef框架。

一、使用配置檔案

安裝entity framework自動生成的配置

當使用vs的nuget自動安裝entity framework(本文使用6.2.0)時會自動生成一些**。在***.config中會自動新增一些配置

乙個空的配置檔案:

<?xml version="1.0" encoding="utf-8"?>

安裝entity framework後配置檔案變為:

<?xml version="1.0" encoding="utf-8"?>

可以看到增加了、配置節,這些配置都是針對微軟sqlserver資料庫的,如果使用其他資料庫還有修改一下。

如果將配置節刪掉,執行程式會拋異常,異常丟擲的位置為dbcontext初始化的時候。

所以配置節是必須的,其作用是建立自定義配置節,配置ef框架。預設生成的自定義配置節名稱為entityframework,所以下面的也是必須的。

自動生成的配置節中包含了、這兩個配置節。其實只包含配置節就可以了且是必須的。

配置節的作用是配置code first預設連線工廠。此配置節下的用來指定連線工廠建構函式的引數,如果引數是多個可以配置多個。

配置節的作用是指定訪問資料庫的客戶端dll(ef6起)。

自此預設的配置解析完了,接下來是非自動生成的配置。

需手動配置的部分

配置節用於配置資料庫連線字串,是必須配置的(一定程度上,若不配置則要顯示傳遞資料庫連線給上下文)。

下的配置節是選配的,作用是配置自定義資料庫上下文,完成資料庫初始化。

下的配置節配置***(ef6.1起)。例:

的type逗號前是類名(含命名空間),逗號後是命名空間,配置節配置類建構函式的引數。

的屬性codeconfigurationtype配置資料庫連線配置,必選。如果連線配置是自定義的擴充套件自dbconfiguration的類,那麼要配置這個自定義類。

二、使用**完成配置

使用**完成配置要做到以下幾項

1)建立system.data.entity.dbconfiguration類的子類

2)在子類建構函式中呼叫dbconfiguration的方法進行配置。

3) 將繼承自dbconfiguration的子類傳給dbconfigurationtype特性,啟用配置

dbconfiguration中的方法

protected internal void setdefaultconnectionfactory(idbconnectionfactory connectionfactory);

設定資料庫連線工廠,對應配置節

protected internal void addinterceptor(idbinterceptor interceptor);

設定資料庫***,對應配置節

protected internal void setexecutionstrategy(string providerinvariantname, funcgetexecutionstrategy);

設定訪問資料庫的客戶端dll,對應配置節

三、示例(ef6.0.0)

以mysql為例說明只使用配置檔案、只使用編碼方式、使用配置檔案和編碼結合的方式完成配置。

ef操作mysql涉及到兩個dll:mysql.data.entity,mysql.data.entity.ef6.dll(適用於.net framework 4.0 或.net framework 4.5),一般使用mysql.data.entity.ef6.dll

使用配置檔案

可以看出:

配置節是預設生成的沒有變化。

配置節配了兩個連線字串,並且使用清除預設配置。

配置節變化較大,資料庫客戶端為mysql.data.mysqlclient。codeconfigurationtype為mysql.data.entity.mysqlefconfiguration

使用編碼配置

public class customdbconfiguration : mysqlefconfiguration

}[dbconfigurationtype(typeof(customdbconfiguration))]

public class customdbcontext : dbcontext

}

配置檔案和編碼結合配置檔案部分

編碼部分

public class customdbconfiguration : mysqlefconfiguration

}[dbconfigurationtype(typeof(customdbconfiguration))]

public class customdbcontext : dbcontext

}

Entity Framework 架構簡介

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。實體框架 entitry framework 以下簡稱ef 看起來像乙個有趣的技術,更強大,比linq to sql 更先進。這兩...

entity framework 批量刪除

以前用sql寫批量刪除的時候,感覺挺利索的,簡潔地寫了 public bool delectusersuggest string addsql 然後在頁面層直接呼叫 現在用entity framework,感覺有點麻煩不能直接delete,還要先把資料查出來,以下是主要 1 先查出實體 region...

Entity Framework 動態查詢

不想多說什麼直接說 region 搜尋並分頁 ljy 傳入搜尋條件,當前頁碼,每頁的顯示的條數,資料的總數 輸出引數 三個引數,返回 商實體 搜尋條件 當前頁碼 每頁的顯示的條數 資料的總數 public iqueryable endregion 在頁面呼叫時如果通過時間來查詢,請記住一定要這樣寫 ...