gpt4 book ai didi

asp.net-core - 来自 Entity Framework Core 数据层中 appsettings.json 的 ConnectionString

转载 作者:行者123 更新时间:2023-12-02 02:17:24 26 4
gpt4 key购买 nike

我有一个新应用程序,正在使用 Entity Framework Core 在 ASP.NET Core 上构建。该应用程序具有 UI、模型、业务和数据层。在以前版本的 ASP.NET 中,您可以在 web.config 中设置连接字符串,并且默认情况下它将在引用层中可用。这似乎与 ASP.NET Core 中的 appsettings.json (或其他配置选项)的情况不同?关于如何实现这一点有什么想法吗?我在数据层中配置了 dbcontext,但我当前正在对连接字符串进行硬编码。

我看到的所有示例都在startup.cs 的UI 层中配置了dbcontext。这就是我试图避免的。

问题Here跑题了。

最佳答案

您可以轻松地将 IServiceCollection 的扩展方法添加到业务/服务层中,并使用它来注册自己的依赖项。然后在启动时,您只需调用服务层上的方法,而无需在 Web 应用程序中引用 EntityFramework。

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;

namespace your.service.layer
{
public static class MyServiceCollectionExtensions
{
public static IServiceCollection AddMyServiceDependencies(this IServiceCollection services, string connectionString)
{
services.AddEntityFrameworkSqlServer()
.AddDbContext<YourDbContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider)
);
return services;
}
}

}

启动:

using your.service.layer;

public void ConfigureServices(IServiceCollection services)
{
var connectionString = Configuration.GetConnectionString("EntityFrameworkConnectionString");
services.AddMyServiceDependencies(connectionString);
}

现在您的 Web 应用程序只需要引用您的业务/服务层,并且它不直接依赖于 EntityFramework。

关于asp.net-core - 来自 Entity Framework Core 数据层中 appsettings.json 的 ConnectionString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356990/

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