根據config中的provider更改EF6中的連接字符串

c# entity-framework-6 orm

我已經從EF5轉移到EntityFramework 6。

現在我遇到了一個問題,我想根據app.Config中設置的提供程序更改連接字符串。含義如果是SqlServerCe,那麼我需要更改DatabaseFile.sdf文件名來更改數據庫。如果是SqlServer,我需要更改InitialCataloge。

我通過獲取類型來做到這一點

'Database.DefaultConnectionFactory'但這在EF6中已過時。

如何根據提供程序修改連接字符串。

我不能通過使用DbConfiguration屬性來做到這一點,因為我需要每次都修改連接字符串。

一般承認的答案

您可以使用

DbConfiguration.SetConfiguration(new YourDbConfiguration());

這樣您就可以在不使用屬性的情況下使用配置。

但是,如果我使用

DbConfiguration.SetConfiguration(new YourDbConfiguration());

要配置SQL CE Factory,路徑'C:\ test'將被忽略,我必須設置Database.DefaultConnectionFactory !!




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因