【发布时间】:2021-02-27 01:02:39
【问题描述】:
之前:
public class MyEntity
{
public string Id { get; set; }
//...
}
配置:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//...
modelBuilder.Entity<MyEntity>()
.Property(e => e.Id)
.ValueGeneratedOnAdd();
}
这是以前开发人员的代码,它导致列的 GUID 值。但是在 C# 中我必须处理字符串,所以我决定更改模型。
之后:
public class MyEntity
{
public Guid Id { get; set; }
//...
}
我从 Fluent API 配置中删除了 ValueGeneratedOnAdd() 代码。
我收到column "Id" cannot be cast automatically to type uuid 错误。
我认为此消息中的关键是automatically 字。
现在我的问题是,由于该列上的值已经是 GUID/UUID,有没有办法告诉 Postgres 将 varchar 类型更改为 uuid 并将当前字符串值转换为 UUID 并将其放入列?我猜应该有一个 SQL 脚本可以做到这一点而不会丢失任何数据。
【问题讨论】:
标签: postgresql entity-framework-core entity-framework-migrations npgsql