小编sky*_*fer的帖子

对某些控制器使用中间件

在我的 ASP Net Core 应用程序中,我需要仅为特定控制器应用自定义中间件。

我找到了这个例子

app.UseWhen(context => context.Request.Path.StartsWithSegments("/api"), appBuilder =>
{
    app.UseMiddleware();
});

Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

如何检查请求路径是否包含特定路径而不是开头?

c# middleware asp.net-core-3.1

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

ByteArray 到 IFormFile

我正在使用 C# 和 Net Core 开发一些 REST API
我的存储库中有一个函数,它接受类型为 的参数IFormFile

public async Task<bool> UploadFile(IFormFile file)
{
    // do some stuff and save the file to azure storage
}
Run Code Online (Sandbox Code Playgroud)

此函数由控制器方法调用,该方法将上传的文件传递给它

public class FileController : Controller
{
    public async Task<IActionResult> UploadDoc(IFormFile file
    {
        // Call the repository function to save the file on azure
        var res = await documentRepository.UploadFile(file);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有另一个调用外部 API 的函数,该 API 将文件作为字节数组返回。我想使用该repository.UploadFile方法保存这个字节数组,但我无法将字节数组对象转换为IFormFile.
是否可以?

c# file-upload asp.net-core

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

EF Core将Id设置为Int.MinValue并尝试插入数据库中

我正在使用EF Core,并且在保存新实体时遇到问题。

这是我的模特班

[Column("Id")]
public int ID { get; set; }
[Required]
[Column("Pratica", TypeName = "varchar(10)")]
public string PRATICA { get; set; }
[Column("Anno")]
public int ANNO { get; set; }
[Required]
[Column("Variante", TypeName = "varchar(2)")]
public string VARIANTE { get; set; }
Run Code Online (Sandbox Code Playgroud)

在这里,我创建并初始化一个新的PRAT对象:

var prat = new PRAT();
prat.PRATICA = "Prova";
prat.ANNO = 2000;
prat.VARIANTE = "0";
context.PRAT.Add(prat);
context.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)

就在context.PRAT.Add(prat)行之后,如果我检查prat.ID成员,我会得到类似-2147482647的信息

在context.SaveChangesAsync之后,出现错误“当IDENTITY_INSERT设置为OFF时,无法在表'Prat'中为标识列插入显式值”

这是生成的SQL语句:

INSERT INTO [Prat] ([Id], [Anno], [Pratica], [Variante]) VALUES (@p0, @p1, @p2, @p3);
Run Code Online (Sandbox Code Playgroud)

如您所见,Id字段已添加到字段列表中,但此字段是Identity!

如果在context.SaveChangesAsync()之前设置

prat.ID = 0 …
Run Code Online (Sandbox Code Playgroud)

entity-framework-core

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