gpt4 book ai didi

.net-core - 如何将针对 Entity Framework .Net 4.6.1 的库与 .Net Core 应用程序一起使用

转载 作者:行者123 更新时间:2023-12-03 07:56:31 24 4
gpt4 key购买 nike

我有一个用于 MVC 应用程序的存储库。它运行良好,没有任何问题。

目前,我正在使用 .Net Core 构建一个新的客户端应用程序。我引用了我现有的目标框架 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 Core 应用程序添加了一个 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>

现在我在下面收到一个错误

Message "The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information." string

我尝试将 .net EntityFramework 安装到我的 .net 核心应用程序,但我收到一条警告,指出它不会完全兼容,而且我在较短的版本中遇到了同样的错误。

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

最佳答案

答案是否定的(目前)。

同时 Entity Framework Core可以与完整的 NET 框架和 NET Core 一起工作(因为它支持 NET 标准),Entity Framework 6 只能与完整的 NET 框架一起工作。参见 Compare EF Core & EF6 .

AFAIK 有一些计划在将来(不确定何时)向 EF6 添加 NET Core(或 NET Standard)支持,目前唯一的选择是 port the EF6 code to EF Core .但请注意,两者之间存在根本差异,并且 EF Core 仍然不稳定(尤其是查询到 SQL 的转换),如果您使用复杂的 LINQ 查询,可能会严重损害性能。如果您仅将 EF 用于 CRUD,那么端口可能没有那么大的问题。

关于.net-core - 如何将针对 Entity Framework .Net 4.6.1 的库与 .Net Core 应用程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53228515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com