C# EF 在 SaveChanges() 的查询中添加随机列

问题描述 投票:0回答:1

由于某种原因 EF 添加列来插入查询。该专栏在我的模型中不存在,有人有更多关于此的信息吗?

我的型号:

public partial class EvidencijaAktivnosti
{
    public Guid Id { get; set; }
    public int IdAuto { get; set; }
    [Required]
    public Guid IdAktivnosti { get; set; }
    [Required]
    public Guid IdSkupina { get; set; }
    public string? IdKorisnika { get; set; }
    public DateTime Datum { get; set; }
    public string? Napomena { get; set; }
    public Guid IdKlub { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime UpdatedAt { get; set; }
}

这是该实体的 DbContext

modelBuilder.Entity<EvidencijaAktivnosti>(entity =>
        {
            entity.HasKey(e => e.Id).HasName("EvidencijaAktivnosti_pkey");

            entity.ToTable("EvidencijaAktivnosti");

            entity.Property(e => e.Id).HasDefaultValueSql("uuid_generate_v4()");
            entity.Property(e => e.CreatedAt)
                .HasDefaultValueSql("CURRENT_TIMESTAMP")
                .HasColumnType("timestamp without time zone");
            entity.Property(e => e.Datum).HasColumnType("timestamp without time zone");
            entity.Property(e => e.IdAuto).ValueGeneratedOnAdd();
            entity.Property(e => e.Napomena).HasMaxLength(5000);
            entity.Property(e => e.UpdatedAt)
                .HasDefaultValueSql("CURRENT_TIMESTAMP")
                .HasColumnType("timestamp without time zone");
        });

这是保存它的代码:

 db.EvidencijaAktivnosti.Add(data);
 await db.SaveChangesAsync();

最后这里是生成的查询(注意:“AktivnostiId”):

INSERT INTO "EvidencijaAktivnosti" ("Id", "AktivnostiId", "CreatedAt", "Datum", "IdAktivnosti", "IdAuto", "IdKlub", "IdKorisnika", "IdSkupina", "Napomena", "UpdatedAt")
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10);

Ofc 我收到错误:

Npgsql.PostgresException (0x80004005): 42703: column "AktivnostiId" of relation "EvidencijaAktivnosti" does not exist
          MessageText: column "AktivnostiId" of relation "EvidencijaAktivnosti" does not exist

在数据库中我没有此专栏,我尝试过搜索“AktivnostiId”但没有运气,我尝试过清理项目但没有运气!

c# .net entity-framework
1个回答
0
投票

更改后迁移了吗?

Mb,您需要在 DbContext 中指定列名称,如下所示:

entity.Property(e => e.IdAktivnosti)
        .HasColumnName("IdAktivnosti"); 
© www.soinside.com 2019 - 2024. All rights reserved.