相关疑难解决方法(0)

SQL - 查询以获取服务器的IP地址

我是否可以使用SQL Server 2005中的查询来获取服务器的IP或名称?

sql sql-server

83
推荐指数
9
解决办法
26万
查看次数

我可以将依赖注入迁移(使用EF-Core代码优先迁移)吗?

我试图注入IConfiguration迁移(在构造函数中),并得到异常:"没有为此对象定义无参数构造函数."

任何解决方法?

entity-framework dependency-injection ef-migrations entity-framework-core asp.net-core

11
推荐指数
2
解决办法
2454
查看次数

在Entity Framework Core中创建迁移时如何配置DbContext?

在使用Entity Framework的迁移命令时,是否可以配置/引导依赖注入?

Entity Framework Core支持DbContext子类的依赖注入.该机制包括允许在数据访问之外配置数据访问DbContext.

例如,以下内容将使用从中检索的连接字符串将EF配置为持久保存到SQL Server config.json

ServiceCollection services = ...

var configuration = new Configuration().AddJsonFile( "config.json" );
services.AddEntityFramework( configuration )
    .AddSqlServer()
    .AddDbContext<BillingDbContext>( config => config.UseSqlServer() );
Run Code Online (Sandbox Code Playgroud)

但是,迁移命令不知道执行此代码,因此Add-Migration缺少提供程序或缺少连接字符串会失败.

迁移可制成通过覆盖工作OnConfiguring的内DbContext子类来指定供应商和配置字符串,但在不同的配置是其他地方所期望的方式获得.最终保持我的迁移命令和我的代码都工作变得非常复杂.

注意:我的DbContext生活在与使用它的入口点不同的程序集中,我的解决方案有多个启动项目.

c# dependency-injection dbcontext entity-framework-core .net-core

7
推荐指数
3
解决办法
1万
查看次数

在 ASP.NET Core 2.1 中加载 appsettings.{envName}.json 文件

ASP.NET Core 的早期版本中,我们可以动态添加带有环境后缀的 appsetting.json 文件,就像appsettings.Production.json生产环境一样。

由于结构有点不同,看来配置现在已加载到 class 中Program。但是我们这里没有注入``,所以我自己使用环境变量尝试了:

public class Program {
        public static void Main(string[] args) {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
            string envName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
            string envConfigFile = $"appsettings.{envName}.json";

            var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile(envConfigFile, optional: true);

            var finalConfig = config.Build();
            return WebHost.CreateDefaultBuilder(args)
                .UseUrls("http://0.0.0.0:5000")
                .UseConfiguration(finalConfig)
                .UseStartup<Startup>();
        }
    }
Run Code Online (Sandbox Code Playgroud)

代码已执行,但它不会覆盖我的appsettings.json配置。假设我有以下内容appsettings.json

{
    "MyConnectionString": "Server=xxx,Database=xxx, ..."
}
Run Code Online (Sandbox Code Playgroud)

这个连接字符串正在工作。现在我创建appsettings.Development.json

{
    "MyConnectionString": ""
}
Run Code Online (Sandbox Code Playgroud)

并设置ASPNETCORE_ENVIRONMENT=Development. 这肯定会引发异常。但应用程序可以使用来自 …

c# json appsettings asp.net-core

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