.net core 如何将库目标实体框架.Net 4.6.1与.Net核心应用程序结合使用

.net core 如何将库目标实体框架.Net 4.6.1与.Net核心应用程序结合使用,.net-core,entity-framework-6,entity-framework-core,asp.net-core-2.0,.net-4.6,.net Core,Entity Framework 6,Entity Framework Core,Asp.net Core 2.0,.net 4.6,我有一个用于MVC应用程序的存储库库。它工作得很好,没有任何问题 目前,我正在使用.NETCore构建一个新的客户端应用程序。我引用了我现有的存储库项目,该项目的目标框架为4.6.1。我可以建立没有任何问题 当我尝试使用现有数据库上下文访问数据时。我遇到一个错误,它找不到DefaultConnection字符串 public class MyAppContext : DbContext { public MyAppContext():base("name=DefaultConnection

我有一个用于MVC应用程序的存储库库。它工作得很好,没有任何问题

目前,我正在使用.NETCore构建一个新的客户端应用程序。我引用了我现有的存储库项目,该项目的目标框架为4.6.1。我可以建立没有任何问题

当我尝试使用现有数据库上下文访问数据时。我遇到一个错误,它找不到DefaultConnection字符串

public class MyAppContext : DbContext
{
   public MyAppContext():base("name=DefaultConnection"){}
这是我在config.json中的连接

 "ConnectionStrings": {
     "DefaultConnection": "Data Source=[SERVER]; Initial Catalog=[CATALOG]; User ID=[USERID];
 Password=[PASSWORD];MultipleActiveResultSets=true;"   },
我在.Net核心应用程序中添加了一个app.config文件,如下所示

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="System.Data.SqlClient" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=[SERVER]; Initial Catalog=[CATALOG]; User ID=[USERID];
 Password=[PASSWORD];MultipleActiveResultSets=true; " providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

更多
信息。“字符串

我试图将.net EntityFramework安装到我的.net核心应用程序中,但收到一条警告,它将不完全兼容,并且在较短的版本中出现了相同的错误

如何使.Net Core Web应用程序共享.Net 4.6库而不重写它们以使用.Net Core?

答案是否定的(目前)

虽然Entity framework 6可以同时使用完整的NET framework和NET Core(因为它支持NET标准),但它只能使用完整的NET framework。请参阅


AFAIK有一些计划在将来(不确定何时)向EF6添加NET Core(或NET Standard)支持,目前唯一的选择是添加。但请注意,有一些根本性的区别,EF Core仍然不稳定(特别是查询到SQL的转换)如果您使用复杂的LINQ查询,可能会严重影响性能。如果您仅为CRUD使用EF,则端口可能没有那么大问题。

我认为您的选择是将数据层用作.Net标准或使用EF Core..检查