我已经使用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) 我正在按照本教程
使用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
如果我在解释这个问题时得到任何错误的术语,那么我对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)
有谁可以帮助我吗?并且如果可能的话,解释脚本的每个部分正在做什么.
版本
定义
由于这个问题讨论了不同类型的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) 我有一个看起来像这样的表:
| 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行.
如果不清楚,请告诉我.
设置
问题
我很难理解如何在 dotnet core 2.0 项目中管理 Lambda 函数
当前方法(没有按照我认为的方式实施)
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 lambda deploy-function从 Lambda 代码版本管理的角度来看,这种方法感觉更清晰,但这意味着我不再使用 Terraform 来管理我的 Lambda 函数。 …
工具
设置
我正在尝试为我的 API 中的方法指定授权者。我可以使用控制台来做到这一点(它有很好的文档记录):
问题
我希望能够使用 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) 版本
设置
我正在使用 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,IDictionary2 headers, …
设置
我想做什么
测试使用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) 工具
我想做什么
为使用 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# ×5
.net-core ×2
asp.net-core ×2
amazon-s3 ×1
aws-lambda ×1
aws-sdk-net ×1
docker ×1
go ×1
oracle ×1
r ×1
sql ×1
terraform ×1
unit-testing ×1
xts ×1
xunit2 ×1