Config File Settings Of EF——實體框架的配置檔案設定
我亦MSDN
原文地址
Entity Framework allows a number of settings to be specified from the configuration file. In general EF follows a ‘convention over configuration’ principle. All the settings
discussed in this post have a default behavior, you only need to worry about changing the setting when the default no longer satisfies your requirements.
Entity Framework允許在配置檔案中定義若干項設定,大體上EF遵從“公約對配置”的原則。本文中所有這些設定都有一個預設的行為相對應,因此在修改設定的時候,你要考慮好這些預設行為也已經改變,可能不再符合你的需求。
All of these settings can also be applied using code. The configuration file option allows these settings to be easily changed during deployment without updating your code.
當然所有這些 配置也還是能夠通過程式碼的方式去實現。但是使用配置檔案的方式去設定能夠幫助你在開發中輕鬆的改變配置選項而不需要更新程式碼。
The Entity Framework Configuration Section
Entity Frameworkp配置項
Starting with EF4.1 you could set the database initializer for a context using theappSettings section of the configuration file. In EF 4.3 we introduced the custom entityFramework section to handle the new settings. Entity Framework will still recognize database initializers set using the old format, but we recommend moving to the new
在使用EF4.1中設定資料庫初始設定,建立上下文是使用配置檔案裡appSettings節點完成的。在EF4.3中我們推薦通過自定義entityFramework節點去處理這些新設定。EF仍然能夠識別以老的方式設定的資料庫初始化,但是我們推薦您在可能的情況下儘量使用新的方式。
format where possible.
The entityFramework section was automatically added to the configuration file of your project when you installed the EntityFramework NuGet package.
如果您安裝了EntityFramework NuGet package的話,下面的entityFramework相關配置會被自動新增到專案的配置檔案中去。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
</configuration>
Connection Strings
連線字串
This page provides more details on how Entity Framework determines the database to be used, including connection strings in the configuration file.
這一頁提供更多關於Entity Framework是怎樣決定使用資料庫的一些詳細資訊,還包括關於配置檔案中的連線字串的介紹,可以參閱。
Connection strings go in the standard connectionStrings element and do not require theentityFramework section.
連線字串在標準connectionStrings節點中定義,並不需要entityFramework節點。
Code First based models use normal ADO.NET connection strings. For example:
基於程式碼優先的models使用正常的ADO.NET連線字串。比如下面的:
<connectionStrings>
<add name="BlogContext"
providerName="System.Data.SqlClient"
connectionString="Server=.\SQLEXPRESS;Database=Blogging;Integrated Security=True;"/>
</connectionStrings>
EF Designer based models use special EF connection strings. For example:
基於EF Designer(實體框架設計器)建立的models則使用專門的實體框架連線字串,比如這樣的:
<connectionStrings>
<add name="BlogContext"
connectionString="metadata=res://*/BloggingModel.csdl|
res://*/BloggingModel.ssdl|
res://*/BloggingModel.msl;
provider=System.Data.SqlClient
provider connection string=
"data source=(localdb)\v11.0;
initial catalog=Blogging;
integrated security=True;
multipleactiveresultsets=True;""
providerName="System.Data.EntityClient" />
</connectionStrings>
Code First Default Connection Factory
程式碼優先的預設連線工廠
The configuration section allows you to specify a default connection factory that Code First should use to locate a database to use for a context. The default connection factory is only used when no connection string has been added to the configuration file for a context.
通過配置項你可以指定一個預設的連線工廠,用來使Code First找到資料庫並建立訪問上下文。只有在配置檔案中沒有連線字串的時候,才會使用預設的連線工廠建立訪問上下文。
When you installed the EF NuGet package a default connection factory was registered that points to either SQL Express or LocalDb, depending on which one you have installed.
您安裝EF NuGet package的時候,一個預設的連線工廠就已經註冊到SQL Express或者LocalDb了,至於是哪一個,要看您安裝的是哪一個。(NuGet是 Visual Studio管理類庫的一個擴充套件)
To set a connection factory, you specify the assembly qualified type name in thedeafultConnectionFactory element.
要設定一個連線工廠,您需要在deafultConnectionFactory元素中指定程式集限定型別名稱。
Note:An assembly qualified name is the namespace qualified name, followed by a comma, then the assembly that the type resides in. You can optionally also specify the assembly version, culture and public key token.
注意:一個程式集限定名稱的組成是先有一個名稱空間名稱,後面跟一個逗號,然後是程式集的名稱。你還能指定程式集的版本,區域性和公鑰標記。
Here is an example of setting your own default connection factory:
這有一個幫您設定預設連線工廠的示例:
<entityFramework>
<defaultConnectionFactory type="MyNamespace.MyCustomFactory, MyAssembly"/>
</entityFramework>
The above example requires the custom factory to have a parameterless constructor. If needed, you can specify constructor parameters using theparameters element.
上面的例子只要求自定義工廠有一個不需要引數的訪問介面(建構函式)。如果有需要,你還可以通過指定parameters元素指定訪問介面的引數。
For example, the SqlCeConnectionFactory, that is included in Entity Framework, requires you to supply a provider invariant name to the constructor. The provider invariant name identifies the version of SQL Compact you want to use. The following configuration will cause contexts to use SQL Compact version 4.0 by default.
例如:在實體框架中有一個SqlCeConnectionFactory工廠,需要你提供訪問介面的固定名稱。該名稱標示您需要的SQL Compact提供程式版本,下面的配置會使上下文預設使用SQL Compact version 4.0的提供程式。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
If you don’t set a default connection factory, Code First uses the SqlConnectionFactory, pointing to .\SQLEXPRESS. SqlConnectionFactory also has a constructor that allows you to override parts of the connection string. If you want to use a SQL Server instance other than .\SQLEXPRESS you can use this constructor to set the server.
如果不設定預設連線工廠,Code First會使用SqlConnectionFactory工廠,該工廠指向.\SQLEXPRESS。SqlConnectionFactory還有一個建構函式允許您重寫連線字串的部分內容。假如您想要使用另一個SQL Server 例項而不是.\SQLEXPRESS的話,您可以使用這個建構函式去設定資料庫的伺服器。
The following configuration will cause Code First to use MyDatabaseServer for contexts that don’t have an explicit connection string set.
下面的配置會導致Code First對沒有顯式設定連線字串的上下文使用MyDatabaseServer(資料庫服務例項)。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="Data Source=MyDatabaseServer; Integrated Security=True; MultipleActiveResultSets=True" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
By default, it’s assumed that constructor arguments are of type string. You can use the type attribute to change this.
預設的情況下,建構函式的引數型別被假定為字串型別,你可以使用type屬性更改這個設定。
<parameter value="2" type="System.Int32"/>
Database Initializers
資料庫初始化
Database initializers are configured on a per-context basis. They can be set in the configuration file using thecontext element. This element uses the assembly qualified name to identify the context being configured.
資料庫的初始值設定項建立在每一個具體上下文的基礎上。這可以通過配置檔案中的contex元素進行設定。該元素使用程式集的 限定名稱標識正在配置的上下文。
By default, Code First contexts are configured to use the CreateDatabaseIfNotExists initializer. There is adisableDatabaseInitialization attribute on thecontext element that can be used to disable database initialization.
預設的,Code First上下文被配置成使用CreateDatabaseIfNotExists的初始值,在context元素中有一個disableDatabaseInitialization屬性可以用來設定禁止資料庫初始化操作。
<contexts>
<context type=" Blogging.BlogContext, MyAssembly" disableDatabaseInitialization="true" />
</contexts>
Constructor parameters use the same syntax as default connection factories.
(資料庫初始設定的)構造引數使用和連線工廠一樣的語法。
<contexts>
<context type=" Blogging.BlogContext, MyAssembly">
<databaseInitializer type="Blogging.MyCustomBlogInitializer, MyAssembly">
<parameters>
<parameter value="MyConstructorParameter" />
</parameters>
</databaseInitializer>
</context>
</contexts>
You can configure one of the generic database initializers that are included in Entity Framework. Thetype attribute uses the .NET Framework format for generic types.
你可以配置一個包含在實體框架中的通用資料庫初始值設定項。
For example, if you are using Code First Migrations, you can configure the database to be migrated automatically using the MigrateDatabaseToLatestVersion<TContext, TMigrationsConfiguration> initializer.
例如:如果你在使用Code First做遷移,你可以通過MigrateDatabaseToLatestVersion<TContext, TMigrationsConfiguration>初始值設定項配置資料庫自動遷移
<contexts>
<context type="Blogging.BlogContext, MyAssembly">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[Blogging.BlogContext, MyAssembly], [Blogging.Migrations.Configuration, MyAssembly]], EntityFramework" />
</context>
</contexts>
相關推薦
Config File Settings Of EF——實體框架的配置檔案設定
我亦MSDN 原文地址 Entity Framework allows a number of settings to be specified from the configuration file. In general EF follows a ‘conventi
EF實體框架簡介
EF是什麼 EF的全稱為Entity Framwork,是ADO.NET 中的一套支援開發面向資料的軟體應用程式的技術,是微軟的一個ORM框架。 ORM是什麼 物件關係對映(英語:Object Relational Mapping,簡稱ORM,或O/RM,
springboot把配置實體和配置檔案關聯
1.實體 package com.tansen.study.springbootssm.bean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.spri
【Config】類庫讀取自己的配置檔案,配置檔案的擴充套件
我們在專案中一般都是使用統一的專案檔案配置,所有的配置和自定義的欄位都寫在一個web.config或者App.config檔案中。一般平時我們也沒有發現問題,確實這麼寫沒有問題,但是就是如果寫的多了就看著很臃腫。 並且假如你其他地方不是主專案的配置也寫在這裡,多了是不是很亂,有時候自己都不知道這個是
SpringMVC框架配置檔案中的一些簡單配置
一些基本的配置資訊 <context:component-scan base-package=“有Controller註解的包名”/> 框架的處理異常的方式 NameError
Python:使用配置檔案設定logger的配置(logging.config)
#!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: [email protected] @software: PyCharm @file: 使用配置
Spring-SpringMVC-Mybatis框架配置檔案內容(基礎版)
最近開始學SSM框架了,在學習搭建執行環境和配置檔案時,花了好久,有很多次都出了異常,最後終於跑通了一個簡單的登入功能.現將各種XML檔案記錄下來以便日後檢視.一.Web.XML<?xml version="1.0" encoding="UTF-8"?>
pkg-config的安裝:1、執行配置檔案進行系統配置 : ./configure時出錯
configure: error: Either a previously installed pkg-config or "glib-2.0 >= 2.16" could not be found.解決方法:./configure --with-internal-gl
mybatis框架——配置檔案詳解
一、全域性配置檔案 1、概覽 全域性配置檔案(SqlMapConfig.xml)的配置內容和順序如下(順序不能亂): Properties(屬性) Settings(全域性引數設定) typeAliases(類型別名) typeHandlers(型別處理器) o
ssh框架配置檔案路徑總結
spring和Struts配置檔案預設路徑 spring 預設配置檔案在Webcontent的WEB-INF下Struts 預設配置檔案在src下Hibernate配置檔案分開整合放在src下spr
伺服器config-server中載入git上的配置檔案
在config-server中加上 eureka.instance.preferIpAddress=true eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port} 依舊無法載入g
Mybatis框架 --- 配置檔案
Mybatis 配置檔案的設定和屬性資訊如下。 文件的頂層結構:一、頂層結構configuration 配置 properties 屬性 settings 設定 typeAliases 類型別名 typeHandlers 型別處理器 objectF
Spring Boot 配置檔案設定(三)
簡介 上篇我們做了一些簡單的執行檔案的配置,本篇帶領大家來認識常用的一些配置,當然了關於Spring Boot 這些配置太多太多了,如果想了解更多的話直接上官網參考一下,瞭解相關案例如本篇的配置。 application.properties配置官方指南參考。
django 2.x + celery 4.2.x 配置檔案 設定
django 2.x + celery 4.2.x配置 模組 celery==4.2.1 django-celery-beat==1.1.1 django-celery-results==1.0.1 kombu==4.2.1 配置 __init__.py from __future__ import
mysql配置檔案設定注意點
說明:mysql動態修改的配置引數有兩種: 會話session:只對當前會話產生影響,退出mysql後失效 全域性GLOBAL:對以後的mysql的連線都生效的,重啟mysql後失效(reload過載不會) 注意:如果mysql重啟後這些將失效(reload重新載入不會失效)
phpstudy2018 php5.4.45+Apache相關配置檔案設定
vhosts.conf <VirtualHost _default_:80> DocumentRoot "F:\PHPTutorial\WWW" <Directory "F:\PHPTutorial\WWW"> Options +Indexes +Follow
Spring-boot與maven多環境配置檔案設定
通常在開發時,不同的環境有不同的配置引數,通常會使用maven profile來選擇不同環境的配置檔案。下面介紹spring-boot專案如何與maven結合,來根據環境選擇不通的配置引數。 建立屬性配置檔案 首先為不同的環境配置不同的屬性配置檔案,命名
Windows10下pip的配置檔案設定
pip.ini的內容: [global] index-url = http://mirrors.aliyun.com/pypi/simple trusted-host = mirrors.aliy
Android通過修改配置檔案設定wifi密碼
背景 在一些非常規Android裝置上,如眼鏡/手錶,輸入wifi密碼如同一場災難。此時可以通過修改配置檔案的方法設定wifi的ssid和密碼. wifi密碼配置檔案 首先要保證裝置已經root,wifi的配置檔案在/data/misc/wifi/wpa_
linux磁碟分割槽以及配置檔案設定
硬碟分割槽有三種,主磁碟分割槽(83)、擴充套件磁碟分割槽(5)、邏輯分割槽(包括swap交換分割槽82)。一個硬碟主分割槽至少有1個,最多4個,擴充套件分割槽可以沒有,最多1個。且主分割槽+擴充套件分割槽總共不能超過4個。邏輯分割槽可以有若干個。交換分割槽必須存