由于某种原因 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”但没有运气,我尝试过清理项目但没有运气!
更改后迁移了吗?
Mb,您需要在 DbContext 中指定列名称,如下所示:
entity.Property(e => e.IdAktivnosti)
.HasColumnName("IdAktivnosti");