相关疑难解决方法(0)

实体框架核心迁移 - 连接字符串

我在处理数据库连接字符串和迁移时遇到问题.我有2个项目:

  • 应用

DbContext是在域项目,所以这是我对运行迁移项目.迁移概念强制我OnConfiguring在我DbContext和其中指定数据库提供程序,例如:

protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
    builder.UseSqlServer("<connection string>");
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我不想使用硬编码连接字符串,原因很明显,我不能使用ConfigurationManager从配置文件中读取它,因为配置文件在应用程序项目中.

c# ef-migrations entity-framework-core .net-core

18
推荐指数
4
解决办法
6795
查看次数

如何管理具有多个层的项目中的配置

ASP.NET Core项目模板随附,appsettings.json并且appsettings.Development.json默认情况下会在CreateDefaultBuilder中添加.

由于该项目DbContext是从我的ASP.NET核心项目分开(MyProject.Data),我必须执行IDesignTimeDbContextFactory,以便我的上下文像命令Add-MigrationUpdate-Database工作.我不想硬编码我的连接字符串,IDesignTimeDbContextFactory但在两个项目中重新使用配置.

我的解决方案很少但我想知道根据你的经验和意见最合理的是什么.

  • 落实IDesignTimeDbContextFactory在我的ASP.NET核心(UI层)项目.
  • IDesignTimeDbContextFactory在我的MyProject.Data项目中实现,并移动appsettings.jsonconfiguration项目之间共享的某个根目录或(位于根目录)目录.
  • 为数据库创建单独的配置文件,例如database.json将其放在我的.sln文件旁边.

我该如何分享?

编辑:

这里有类似的问题和答案:数据层中的appsettings.json与实体框架核心的ConnectionString,但它没有回答我的问题.根本没有关于数据层的任何内容.我不想重新使用逻辑来添加db上下文.我想在两个项目中重用连接字符串,以避免重复连接字符串.

c# entity-framework-core .net-core asp.net-core

11
推荐指数
1
解决办法
556
查看次数

使用数据访问层安排3层的dotnet核心应用程序

我典型的.NET 4.5X Web应用程序结构至少包含3层:Web项目(.NET Web应用程序),域/业务逻辑项目(类库)和数据访问项目(类库).Web项目引用业务层,业务层引用数据访问层.

我喜欢这种方法,因为我的web项目没有对数据访问项目的引用(它必须首先通过域/业务逻辑层).我的Web项目不应该具有对上下文或存储库类的任何访问权限.

在3层.net 4.5.X应用程序中,我在web.config中声明连接字符串,并将DbContext的名称作为连接字符串的name属性.

在新的Dotnet Core范例中,我看到的每个示例都在Startup.cs中配置了DbContext,如下所示:

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();
    services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<MyApplicationContext>("myconnectionstring  or reference to it");
}
Run Code Online (Sandbox Code Playgroud)

通过为启动提供一个用于dbcontext的具体类,我必须引用数据访问项目,其中定义了dbcontext.我宁愿只引用中间层,并避免引用DAL.

我的问题是:我应该如何安排我的解决方案结构,以便我可以避免从我的Web项目添加引用到我的数据访问项目?

我可以使用appsettings.json属性吗?

我可以用另一种方式添加我的实体配置吗?

点网核心有什么重要的缺点吗?

先感谢您.

.net c# asp.net entity-framework

6
推荐指数
1
解决办法
8001
查看次数