数据库中的 EF Core 5 字节 [] 为空

EF Core 5 byte[] null in database

我正在为现有数据库创建 WebAPI。在一个 table 中,主键列从 -1 开始。当我打电话时

            var test = await Contexts.CustomerDbContext.ShipCarriers.ToListAsync();
            var test2 = await  Contexts.CustomerDbContext.ShipCarriers.FirstOrDefaultAsync(x => x.ShipCarrierId == 0);
            var test3 = await  Contexts.CustomerDbContext.ShipCarriers.FirstOrDefaultAsync(x => x.ShipCarrierId == -1);

var test =await Contexts.CustomerDbContext.ShipCarriers.ToListAsync();

前两个条目为空,

var test2 = await Contexts.CustomerDbContext.ShipCarriers.FirstOrDefaultAsync(x => x.ShipCarrierId == 0);

var test3 = await Contexts.CustomerDbContext.ShipCarriers.FirstOrDefaultAsync(x => x.ShipCarrierId == -1);

两者均为空。

这是 class 和我正在使用的配置

public class ShipCarrierConfiguration : IEntityTypeConfiguration<ShipCarrierDbObject>
{
    public void Configure(EntityTypeBuilder<ShipCarrierDbObject> builder)
    {
        
    }
}   
 

[Table("spedition")]
public class ShipCarrierDbObject 
{

    [Key]
    [Column("speditionid")]
    public int? ShipCarrierId {get ;set ;}

    [Column("cloudid")]
    public string CloudId { get; set; }

    [Column("bezeichnung")]
    public string Name { get; set; }
    
    [Column("logo")]
    public byte[]? Logo { get; set; }
    
    [Column("logoform")]
    public byte[]? LogoForm { get; set; }

    [Column("logobutton")]
    public byte[]? LogoButton { get; set; }
    
}

据我所知,实体框架在默认情况下从 1 开始 PK,并将值 0 和 -1 作为无效键处理。有没有办法改变这种行为?

编辑: 我找到了导致问题的原因。在数据库中

的字段
[Column("logoform")]
public byte[] LogoForm { get; set; }

[Column("logobutton")]
public byte[] LogoButton { get; set; }

仅这两个条目为空。但我不明白为什么这会阻止加载条目。 我使用的是 PostgreSQL 数据库,两者的字段类型都是 bytea。

因为我无法让 EF 将空值从我的数据库读取到字节[],所以我在数据库中添加了一个 1x1px 透明图像。