第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在同一項(xiàng)目中使用具有多個(gè)數(shù)據(jù)庫(kù)和提供程序的實(shí)體框架(SQL Server 和 MySql)

在同一項(xiàng)目中使用具有多個(gè)數(shù)據(jù)庫(kù)和提供程序的實(shí)體框架(SQL Server 和 MySql)

C#
浮云間 2023-09-16 15:57:56
背景:我有一個(gè)應(yīng)用程序(Web 表單和控制臺(tái)),可以首先使用實(shí)體框架代碼輕松訪問(wèn)多個(gè) SQL Server 數(shù)據(jù)庫(kù),沒(méi)有任何問(wèn)題。我可以在上下文之間來(lái)回切換,沒(méi)有錯(cuò)誤。現(xiàn)在我嘗試添加一個(gè)新的 MySql 數(shù)據(jù)庫(kù)(不同的提供商),但是如果我從一個(gè)上下文切換到另一個(gè)上下文,我會(huì)收到以下錯(cuò)誤消息:錯(cuò)誤:在發(fā)現(xiàn)“MySqlEFConfiguration”類型之前,實(shí)體框架使用默認(rèn)的 DbConfiguration 實(shí)例。在使用任何實(shí)體框架功能之前,必須在應(yīng)用程序啟動(dòng)時(shí)設(shè)置“MySqlEFConfiguration”實(shí)例,或者必須在應(yīng)用程序的配置文件中注冊(cè)。有關(guān)詳細(xì)信息,請(qǐng)參閱 http://go.microsoft.com/fwlink/?LinkId=260883 。我見(jiàn)過(guò)建議將“codeConfigurationType”屬性添加到 web.config 中的entityFramework 節(jié)點(diǎn)以指定我的 MySql 程序集的解決方案,但這不起作用,因?yàn)槲业哪繕?biāo)是具有多個(gè)提供程序的多個(gè)數(shù)據(jù)庫(kù)。Microsoft 支持文章似乎暗示要?jiǎng)?chuàng)建我自己的自定義 DbConfiguration 文件,但我已經(jīng)有了一個(gè):MySql.Data.Entity.mySqlEFConfiguration,并且我已經(jīng)用它相應(yīng)地裝飾了我的 DbContext: [DbConfigurationType(typeof(MySqlEFConfiguration))]     public class MySqlDBContext : DbContext     {         public MySqlDBContext() : base("MySqlDBContext")         {         }     } ...問(wèn)題:似乎沒(méi)有任何方法可以使用配置文件配置來(lái)執(zhí)行此操作,因?yàn)槲覂H限于單個(gè)條目。那么切換上下文時(shí)如何指定提供者呢?我想每個(gè) DbContext 的構(gòu)造函數(shù)中都缺少一些東西來(lái)明確說(shuō)明要使用哪個(gè)提供程序?根據(jù)記錄,我在控制臺(tái)應(yīng)用程序和 Web 表單應(yīng)用程序中收到相同的錯(cuò)誤消息。更新:附加信息(8/21/19) 如果我在 SQLServer 數(shù)據(jù)源上禁用 MultipleActiveResultSets (MARS),似乎可以正常工作,但這不是一個(gè)理想的解決方案,因?yàn)槲乙呀?jīng)編寫了代碼來(lái)利用 MARS。(8/22/19) 實(shí)際上這并不能解決問(wèn)題。它只會(huì)繼續(xù)下一個(gè)問(wèn)題。每個(gè)應(yīng)用程序只能有一個(gè) DbConfiguration,因此解決方案可能涉及編寫一個(gè)與兩個(gè)提供商一起使用的 DbConfiguration...我已通過(guò)我的 MSDN 訂閱提交了支持請(qǐng)求,看看他們是否有任何其他見(jiàn)解...
查看完整描述

3 回答

?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

在微軟的幫助下,我終于弄清楚了。希望這對(duì)其他人有幫助。我必須創(chuàng)建自己的類繼承自 DbConfiguration


public class MyCustomSQLDbConfiguration : DbConfiguration

{

    public MyCustomSQLDbConfiguration()

    {

        SetExecutionStrategy("MySql.Data.MySqlClient", () => new MySqlExecutionStrategy());

        SetDefaultConnectionFactory(new LocalDbConnectionFactory("mssqllocaldb"));

    }

}

然后相應(yīng)地裝飾我的 MySqlDBContext:


[DbConfigurationType(typeof(MyCustomSQLDbConfiguration))]

public class MySqlDBContext : DbContext

{

    public MySqlDBContext() : base("MySqlDBContext")

    {


    }

 }

最后(也是重要的),在運(yùn)行應(yīng)用程序時(shí)顯式設(shè)置它。對(duì)于控制臺(tái)應(yīng)用程序,在 Program.Main 的開(kāi)頭,或者在 Web 應(yīng)用程序中,在 Application_Start 上:


DbConfiguration.SetConfiguration(new MyCustomSQLDbConfiguration());


查看完整回答
反對(duì) 回復(fù) 2023-09-16
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊

自定義 DbConfiguration 也對(duì)我有用?;蛘?,我看到它使用 DbContext 和 DbConnection 構(gòu)造函數(shù)成功運(yùn)行,而不使用任何 DbConfiguration 屬性。


using (var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["MssqlConnectionString"].ConnectionString))

using (var mssqlDbContext = new MSSQLDbContext(sqlConnection, true))

{

   //...

}


using (var mySqlConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["MysqlConnectionString"].ConnectionString))

using (var mySQLDbContext = new MySQLDbContext(mySqlConnection, true))

{

   //...

}

配置中的system.data部分如下。


  <system.data>

    <DbProviderFactories>

      <remove invariant="System.Data.SqlServerCe.4.0" />

      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

      <remove invariant="MySql.Data.MySqlClient" />

      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL"

           type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.24.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

    </DbProviderFactories>

  </system.data>

我可以看到從兩個(gè)數(shù)據(jù)上下文(MSSQL Compact 和 MySQL)檢索的結(jié)果。


查看完整回答
反對(duì) 回復(fù) 2023-09-16
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以使用部分類:


 public partial class MySqlDBContext : DbContext

    {

        public MySqlDBContext(string FirstSQLServerDBContext)

            : base(configmanager.connectionstrings(FirstSQLServerDBContext)...)

        {

        }


查看完整回答
反對(duì) 回復(fù) 2023-09-16
  • 3 回答
  • 0 關(guān)注
  • 205 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)