当前位置: 首页 > 知识库问答 >
问题:

如何在.NET核心应用程序中使用面向实体框架.NET 4.6.1库

曾嘉荣
2023-03-14
public class MyAppContext : DbContext
{
   public MyAppContext():base("name=DefaultConnection"){}
 "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>

现在我在下面发现了一个错误

消息“无法加载在应用程序配置文件中注册得实体框架提供程序类型'System.Data.Entity.SqlServer.SqlProviderServices、EntityFramework.SqlServer',以固定名称为'System.Data.SqlClient'得ADO.NET提供程序.请确保使用程序集限定得名称,并且程序集对正在运行得应用程序可用.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.”字符串

共有1个答案

卢阳成
2023-03-14

答案是否定的(目前)。

虽然Entity Framework Core可以与完整的NET Framework和NET Core一起工作(因为它支持NET标准),但Entity Framework 6只能与完整的NET Framework一起工作。参见比较EF核心和EF6。

AFAIK有一些计划在未来(不确定什么时候)添加NET Core(或NET Standard)对EF6的支持,目前唯一的选择是将EF6代码端口到EF Core。但请注意,它们有根本的区别,而且EF Core仍然不稳定(特别是查询转换为SQL),并且在使用复杂的LINQ查询时可能会严重损害性能。如果您只对CRUD使用EF,那么可能端口就没有那么大的问题了。

 类似资料:
  • 我试着把这个项目作为一个正常的参考。但是在重新构建解决方案之后,控制台应用程序仍然没有将.NET核心库作为参考。

  • 我已经将读上下文和写上下文分开了,现在我将在默认情况下在ReadOnlyContext中启用LazyLoading。我也使用了下面的方法,但不幸的是它不起作用。 我的模型: 我的ef版本: EntityFramework核心版本2.1.2 我得到了这个错误: “为警告‘Microsoft.EntityFrameworkCore.Infrastructure.DetachedLazyLoadingW

  • 问题内容: 我已经制作了一个简单的Entity Framework ASP Core Application,它可以工作,但是我不知道为什么: 我做了这样的上下文: 我有两个表,像这样的模型: 有趣的是,当我运行我的应用程序时,它实际上可以拾取数据。似乎很奇怪,因为我没有指定任何表映射。我假设这只是自动映射,因为指定的表具有相同的名称。 我的问题是: 如果我不希望模型名称与数据库完全相同,该如何指

  • 我已经完成了一个应用程序使用反应在前端和. net核心在后端。现在我需要将此存储库发布给heruko。本地,当我做dotnet构建和运行它工作正常,但同时推动它heroku我得到一个错误 :/bin/sh:2:/tmp/tmp35fd435a650b4b94a93ab28064f9c447。执行官。cmd:npm:not found remote:/tmp/build_46ea6d26/API/A

  • 使用.NET Core和最新的Visual Studio 2019 Community Edition更新创建新的Windows桌面窗体应用程序时,无法查看窗体的设计视图,即Form1.cs[design]。当我单击适当标记的Form1.cs文件时,它只打开代码视图。

  • 我已经找到了几个这样的帖子,但不能确定我在这里做错了什么。 我试着在两张桌子上各放一个项目。第二项包含对第一项的查找。我可以在没有问题的情况下为父级添加种子,但无法找到正确的语法来为子级添加种子。 下面是我用来种子父级的代码 下面是种子子的代码--这将失败: 根据文档的建议,我使用了一个匿名对象,而不是类本身。我也尝试过同时使用navigation属性、外键和nav道具。ID=1的组肯定已经在db