小编Gre*_*uff的帖子

Visual Studio代码实体框架核心添加迁移无法识别

我已经使用yoman通过Visual Studio代码编辑器生成ASP.Net Core Web API应用程序.作为参考,我在这里遵循了本教程

API工作正常.但是,我正在尝试将实体框架核心迁移与SQL Server一起使用.当我在Visual Studio代码终端中键入以下内容时:

Add-Migration MyDbInitialMigration
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

'Add-Migration' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我安装了Microsoft.EntityFrameworkCore.Tools: 1.1.0-preview4-final依赖项.我使用.Net核心项目管理器(Nuget)扩展来完成此操作.

在Visual Studio 2015中,此命令可从Package Manager控制台正常运行.

我假设使用Visual Studio Code的终端是个问题.但有谁知道如何在VS Code编辑器中使用EF Core Migrations?

谢谢你的帮助.

运行该dotnet ef migrations add InitialCreate命令会产生以下错误:

No executable found matching command "dotnet-ef"
Run Code Online (Sandbox Code Playgroud)

要解决这个问题,我需要安装以下依赖项,并将其添加到工具部分:

Microsoft.EntityFrameworkCore.Tools.DotNet
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core visual-studio-code

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

在集成测试ASP.NET Core Web API和EF Core时重新配置依赖关系

我正在按照本教程
使用Entity Framework Core和SQL Server进行集成测试

我的代码看起来像这样

集成测试类

public class ControllerRequestsShould : IDisposable
{
    private readonly TestServer _server;
    private readonly HttpClient _client;
    private readonly YourContext _context;

    public ControllerRequestsShould()
    {
        // Arrange
        var serviceProvider = new ServiceCollection()
            .AddEntityFrameworkSqlServer()
            .BuildServiceProvider();

        var builder = new DbContextOptionsBuilder<YourContext>();

        builder.UseSqlServer($"Server=(localdb)\\mssqllocaldb;Database=your_db_{Guid.NewGuid()};Trusted_Connection=True;MultipleActiveResultSets=true")
            .UseInternalServiceProvider(serviceProvider);

        _context = new YourContext(builder.Options);
        _context.Database.Migrate();

        _server = new TestServer(new WebHostBuilder()
            .UseStartup<Startup>()
            .UseEnvironment(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")));
        _client = _server.CreateClient();
    }

    [Fact]
    public async Task ReturnListOfObjectDtos()
    {
        // Arrange database data
        _context.ObjectDbSet.Add(new ObjectEntity{ Id = 1, Code = "PTF0001", Name = …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing entity-framework-core xunit2 asp.net-core

17
推荐指数
2
解决办法
6682
查看次数

使用R从XTS对象拉出本月第一个工作日的退货

如果我在解释这个问题时得到任何错误的术语,那么我对R很新,所以道歉.

我在csv文件中有一组每日返回数据,我已设法将其转换为xts对象.数据格式如下:

           HighYield..EUR. MSCI.World..EUR.
2002-01-31          0.0144           0.0031    
2002-02-01          0.0056          -0.0132       
2002-02-02          0.0373           0.0356       
2002-02-03         -0.0167          -0.0644      
2002-02-04         -0.0062          -0.0332      
2002-02-05         -0.0874          -0.1112 
...
Run Code Online (Sandbox Code Playgroud)

我想创建一个脚本,它将找到该月的第一个工作日(从索引中的值范围),然后创建一个新的xts对象,其中包含这些返回值.

例如,在脚本运行后,我将使用以下格式的xts对象:

           HighYield..EUR. MSCI.World..EUR.
2002-01-31          0.0144           0.0031    
2002-02-28          0.0011          -0.0112       
2002-03-31          0.0222           0.0224       
2002-04-30         -0.0333          -0.0223      
2002-05-30         -0.0011          -0.0012      
2002-06-30         -0.0888          -0.0967 
...
Run Code Online (Sandbox Code Playgroud)

有谁可以帮助我吗?并且如果可能的话,解释脚本的每个部分正在做什么.

r xts

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

具有代入角色凭证的 AWS 开发工具包 .NET 依赖注入

版本

  • .net核心sdk v3.1.301
  • AWSSDK.Extensions.NETCore.Setup v3.3.101
  • AWSSDK.IdentityManagement v3.3.106.19
  • AWSSDK.SecurityToken v3.3.105.30

定义

由于这个问题讨论了不同类型的AWS凭证,我认为定义我正在使用的术语会很有帮助

应用程序凭证- 启动时由 .NET Core AWS SDK 加载的 AWS 凭证
承担角色凭证- 在运行时从 STS 获取的临时 AWS 凭证

问题

我正在编写一些使用 AWS 开发工具包与 AWS 交互的代码。使用 AWS SDK 时,我倾向于使用依赖注入容器中内置的 ASP.NET Core 来注入服务客户端:

services.AddAWSService<IAmazonIdentityManagementService>();
services.AddAWSService<IAmazonSecurityTokenService>();
Run Code Online (Sandbox Code Playgroud)

当您想要使用应用程序凭据时,这很有效。AWS 客户端的注入和实例按预期工作

public class IamService : IIamService
{
    private readonly IAmazonIdentityManagementService _iamClient;

    public IamService(IAmazonIdentityManagementService iamClient)
    {
        _iamClient = iamClient;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我的应用程序需要在多个帐户中承担多个角色

我能想到的唯一方法是调用 STS 来获取假设角色凭据

AssumeRoleRequest request = new AssumeRoleRequest()
{
    RoleSessionName = "MySession", …
Run Code Online (Sandbox Code Playgroud)

c# amazon-web-services aws-sdk-net

6
推荐指数
0
解决办法
1962
查看次数

根据来自不同列的值排除记录

我有一个看起来像这样的表:

| CODE   |  LEVEL1  |  LEVEL2  |  LEVEL3  |   SEC_ID   |
| CODE1  |  LEV1    |  LEV2    |  LEV3    |   123456   |
| CODE2  |  LEV1    |  LEV2    |  LEV3    |   234561   |
| CODE2  |  LEV1    |  LEV2    |  Term    |   345612   |
| CODE3  |  LEV1    |  LEV2    |  LEV3    |   456123   |
Run Code Online (Sandbox Code Playgroud)

我需要我的查询在列中查找单词"Term" Level3,然后排除具有相同的每一行CODE.

因此,在上面的示例中,查询将从结果中排除第2行和第3行.

如果不清楚,请告诉我.

sql oracle

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

使用 dotnet core 2.0 和 Terraform 管理 AWS Lambda 函数

设置

  • VS代码
  • 地形 (v0.11)

问题

我很难理解如何在 dotnet core 2.0 项目中管理 Lambda 函数

当前方法(没有按照我认为的方式实施)

  • 在 Terraform 中创建函数结构
  • 创建一个DOTNET核心项目的功能代码,描述在这里
  • 压缩发布文件夹并上传到 S3
  • 按照 AWS 文档的 c# (assembly::namespace.class-name::method-name) 在 Terraform 函数定义中引用函数的处理程序

Terraform Lambda 函数示例

resource "aws_lambda_function" "this" {
  function_name = "test_function"
  role          = "lambda_exec_role"
  s3_bucket     = "my_bucket"
  s3_key        = "object_key/package.zip"

  handler = "MyApp::Example.Hello::MyHandler"
  runtime = "dotnetcore2.0"
}
Run Code Online (Sandbox Code Playgroud)

这种方法意味着,如果我更改项目中的单个函数,我必须将整个代码库上传到 S3,这不是处理代码更改的干净方式。

替代方法

  • 使用 dotnet 核心 CLI 来管理 Lambda 函数而不是 Terraform
  • 使用 dotnet core CLI 部署每个函数 dotnet lambda deploy-function

从 Lambda 代码版本管理的角度来看,这种方法感觉更清晰,但这意味着我不再使用 Terraform 来管理我的 Lambda 函数。 …

.net-core aws-lambda terraform

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

AWS APIGateway 以及 OpenAPI 规范中定义的 Cognito Authorizer

工具

  • 地形 v0.11.14

设置

  • API 网关由 Terraform 管理,使用 OpenAPI 规范定义
  • Cognito 授权者

我正在尝试为我的 API 中的方法指定授权者。我可以使用控制台来做到这一点(它有很好的文档记录):

手动 Cognito 授权者

问题

我希望能够使用 OpenAPI 规范以编程方式进行设置。AWS 的相关文档在这里

它表示您可以通过指定以下内容在 OpenAPI 规范中创建 Authorizer 对象:

securitySchemes:
  NameOfCognitoAuthorizer:
    type: apiKey
    name: Authorization
    in: header
    x-amazon-apigateway-authtype: cognito_user_pools
    x-amazon-apigateway-authorizer:
      type: cognito_user_pools
      providerARNs:
      - 'arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}'
Run Code Online (Sandbox Code Playgroud)

这按预期工作。

完成后,您应该能够将 Authorizer 应用到资源方法,如下所示:

post:
  summary: Create a new Item
  responses:
    '200':
      description: Ok
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Item'
  security:
    - NameOfCognitoAuthorizer:
Run Code Online (Sandbox Code Playgroud)

但是,当我应用更改并在 AWS 控制台中检查 post 方法时,我可以看到 Authorizer 尚未应用于 API 方法。谁能看到我做错了什么吗?

为了完整起见,我的 API 是使用 terraform 创建的:

securitySchemes:
  NameOfCognitoAuthorizer: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cognito aws-api-gateway

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

Docker.DotNet xUnit 测试错误,无法分配请求的地址 /var/run/docker.sock

版本

  • Docker 引擎 CE v19.03.8
  • 点网SDK v3.1.301
  • Docker.DotNet v3.125.2
  • xUnit v2.4.0

设置

我正在使用 Docker.DotNet 包来管理 ASP.NET Core API 项目中功能测试的容器依赖项

我使用了此博客 ( https://danieldonbavand.com/dockerdotnet/ )中的代码来创建一个类来管理我的测试项目中与 Docker API 的交互 - 我已将此代码添加到帖子因为比较长。

问题

dotnet test当我从终端运行命令时,一切都按预期进行。但是,我想在构建Dockerfile.

当我运行时,docker build -t my-project .出现以下错误:

System.Net.Http.HttpRequestException:连接失败 ---- System.Net.Internals.SocketExceptionFactory + ExtendedSocketException:无法分配请求的地址 /var/run/docker.sock 堆栈跟踪:位于 Microsoft.Net.Http.Client.ManagedHandler。 ProcessRequestAsync(HttpRequestMessage请求,CancellationToken CancellationToken)在Microsoft.Net.Http.Client.ManagedHandler.SendAsync(HttpRequestMessage请求,CancellationToken CancellationToken)在System.Net.Http.HttpClient.FinishSendAsyncBuffered(任务1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at Docker.DotNet.DockerClient.PrivateMakeRequestAsync(TimeSpan timeout, HttpCompletionOption completionOption, HttpMethod method, String path, IQueryString queryString, IDictionary2标头,IRequestContent数据,CancellationToken CancellationToken)在Docker /src/My.FunctionalTests/ 中的.DotNet.DockerClient.PrivateMakeRequestAsync(TimeSpan超时,HttpCompletionOption finishOption,HttpMethod方法,字符串路径,IQueryString queryString,IDictionary 2 headers, …

c# docker .net-core

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

Mock AWS API Gateway 请求和 DynamoDB for Golang Lambda 函数单元测试

设置

  • 视窗 10
  • 去 v1.10.3
  • aws cli v1.16.67

我想做什么

测试使用golang. 该函数接受来自 的请求API Gateway,然后使用DynamoDB. 大多数的下方已经从采取这个文章(我一起去一个新手)

package main

import (
    "encoding/json"
    "log"
    "net/http"
    "os"
    "regexp"

    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
)

var uuidRegexp = regexp.MustCompile(`\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b`)
var errorLogger = log.New(os.Stderr, "ERROR ", log.Llongfile)

type job struct {
    ID                string `json:"id"`
    ClientID          string `json:"clientId"`
    Title             string `json:"title"`
    Count             int    `json:"count"`
}

// CreateJobCommand manages interactions with DynamoDB
func CreateJobCommand(req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {

    if req.Headers["Content-Type"] != "application/json" {
        return …
Run Code Online (Sandbox Code Playgroud)

unit-testing go amazon-web-services

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

AWS .NET SDK 使用 ASP.NET Core 依赖注入配置 S3 客户端

工具

  • Visual Studio 2017 专业版
  • .NET Core SDK v2.2.102
  • AWSSDK.S3 v3.3.102.14

我想做什么

为使用 localstack 端点作为 S3 的 ServiceURL 的开发环境配置 Amazon S3 客户端

我正在尝试Startup.cs使用 ASP.NET Core 的本机依赖注入在我的文件中全局配置 S3 客户端

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddAWSService<IAmazonS3>();
}
Run Code Online (Sandbox Code Playgroud)

问题

我不知道如何为 S3 客户端设置 ServiceURL。我在AWS 文档中看到您可以在appsettings.json文件中配置此属性。但是,这并不能解决我的问题,因为我需要集成多个 AWS 服务。

我在谷歌上搜索的所有内容都表明你只需要做这样的事情:

var s3Client = new AmazonS3Client(new AmazonS3Config
{
    ServiceURL = "http://localhost:5002"
});
Run Code Online (Sandbox Code Playgroud)

但是我必须在使用 S3 客户端的每个类中都这样做,这似乎不正确。

任何帮助表示赞赏。谢谢

c# amazon-s3 amazon-web-services asp.net-core

4
推荐指数
2
解决办法
3457
查看次数