小编Dan*_*oft的帖子

传递一个byte []

我们使用的第三方生成的代理将BLOB数据类型公开为byte [],然后我们通过代码生成公开此值,如下所示:

public byte[] FileRawData
{
    get { return internalDataRow.FileRawData; }
    set { this.internalDataRow.FileRawData = value; }
}
Run Code Online (Sandbox Code Playgroud)

然后,通过我们的应用程序(可能在不同的程序集中)使用此属性.根据FxCop规则,属性不应该暴露数组.那么,这里更好(或最好)的方法是什么?别人在这种情况下做了什么?

  1. 切换到这些类型的方法.
  2. 更改为集合(即ICollection<T>IList<T>实现)
  3. 关闭此FxCop规则.

选项3总是可行的,但如果我们应该以不同的方式做事,那么我宁愿这样做.

c# collections fxcop

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

Entity Framework Core - 当模型更改时,早期数据迁移会中断

我们正在使用 .NET Core、EF Core 和 Postgres 启动一个新应用程序 - 我们真的很喜欢这些迁移:-)

但是,我发现了一个我不知道如何解决的问题。在我们的一些迁移中,我们使用DbContext来加载记录、运行一些业务逻辑并重新保存记录。我们也在database.Context.Migrate()Web 服务器启动时运行,因此它始终运行。

这一切都运行良好(到目前为止)。

不幸的是,它一直有效,直到模型稍后更改为止。考虑以下迁移顺序:

  1. 创建CustomerOrder、 和OrderLine模型。添加架构迁移以加载结构

  2. 业务规则发生变化,所以我们需要Order根据一些业务逻辑在记录上设置一个值。我们创建一个数据迁移,在其中加载DbContext、运行代码并运行SaveChangesAsync()

    至此,一切都很好。

  3. 我们需要向记录添加带有新字段的架构迁移Customer

在这里,事情破裂了。如果数据库尚未应用迁移 2,则该Migrate()命令会在应用迁移 2 时出错,EF 正在尝试生成包含 3 中的新字段的 select 语句。

但我不确定问题实际上出在这个过程中:我们不应该DbContext在迁移中使用(和手动编写 SQL 语句)吗?我们是否应该明确地对读取的每条记录进行预测,以便我们确切地知道我们在做什么?

还有别的事吗?

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

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

表单识别器预览 - 无法加载示例文档

我正在尝试使用 Forms Recognizer 预览,经过多次反复试验,我终于通过 SAS URL 读取了文档。但是,即使使用快速入门 [1] 中提供的示例文档,我也会得到以下响应:

{
    "modelId": "d7ba79e3-38bc-4913-bb11-82656cb08adc",
    "trainingDocuments": [
        {
            "documentName": "Invoice_1.pdf",
            "pages": 1,
            "errors": [
                "Page 1: Document is either invalid or exceeds the page/size limits."
            ],
            "status": "failure"
        },
        {
            "documentName": "Invoice_2.pdf",
            "pages": 1,
            "errors": [
                "Page 1: Document is either invalid or exceeds the page/size limits."
            ],
            "status": "failure"
        },
        {
            "documentName": "Invoice_3.pdf",
            "pages": 1,
            "errors": [
                "Page 1: Document is either invalid or exceeds the page/size limits."
            ],
            "status": "failure"
        }, …
Run Code Online (Sandbox Code Playgroud)

microsoft-cognitive

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