ASP.NET 5中的一个DbConfiguration的多个EF6 DbContext

问题描述 投票:2回答:1

我正在尝试将我的MVC 5应用程序移植到MVC 6.我正在使用Devart dotConnect for MySql和Oracle。我在配置应用程序时遇到问题。

现在我有以下条目:

<entityFramework>
    <providers>
        <provider invariantName="Devart.Data.MySql" type="Devart.Data.MySql.Entity.MySqlEntityProviderServices, Devart.Data.MySql.Entity" />
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
    </entityFramework>
    <system.data>
    <DbProviderFactories>
        <remove invariant="Devart.Data.MySql" />
        <add name="dotConnect for MySQL" invariant="Devart.Data.MySql" description="Devart dotConnect for MySQL" type="Devart.Data.MySql.MySqlProviderFactory, Devart.Data.MySql" />
    </DbProviderFactories>
</system.data>

我的应用程序在单独的程序集中有3个DbContext类(2x MySql,1x Oracle),我只能有1个DbConfiguration类(实体框架6限制)。

如果我设置此配置,则其他上下文会抱怨他们无法使用DbConfiguration类看到程序集。

我该如何克服这个限制?

entity-framework-6 asp.net-core asp.net-core-mvc devart dotconnect
1个回答
-1
投票

前几天我发现自己处于类似情况,不得不依靠web.config来丰富配置

<entityFramework codeConfigurationType="MyNamespace.MyDbConfiguration, MyAssembly">
...Your EF config...
</entityFramework>

编辑

第二个选项是将DbConfigurationTypeAttribute放在上下文类中

[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyContextContext : DbContext
{
}

有关详细信息,请查看这些资源

Ef6 docs: Code-Based Configuration Type (EF6 Onwards)

Ef6 docs: Moving DbConfiguration

© www.soinside.com 2019 - 2024. All rights reserved.