Failed to save string value to PostgreSQL enum column
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Start by checking how EF Core value conversions interact with Npgsql's PostgreSQL enum mapping; the report provides a converter, model configuration, SQL schema, and exception, but names no repository files or tests. Reproduce the save failure with the provided setup, then look for relevant provider tests or documentation. Done means establishing whether this configuration can save the value and documenting or fixing the behavior.
由索引模型根据 Issue 内容生成。
描述
I have C# value object together with convert like this:
public record DomainType
{
public string Value { get; }
public static readonly DomainType DomainTypeValue1 = new("DomainTypeValue1");
public static readonly DomainType DomainTypeValue2 = new("DomainTypeValue2");
public static readonly DomainType DomainTypeValue3 = new("DomainTypeValue3");
private DomainType(string value)
{
Value = value;
}
public static DomainType From(string value)
{
return new DomainType(value);
}
public override string ToString()
{
return Value;
}
}
public class DomainTypeConverter() : ValueConverter<DomainType, string>(v => v.Value, v => DomainType.From(v));
I use this type in the entity:
[EntityTypeConfiguration<DomainEntityModelBuilder, DomainEntity>]
[Table("domain_entity", Schema = "my_schema")]
public class DomainEntity
{
public required Guid Id { get; init; }
public required DomainType EntityType { get; init; }
}
Model builder looks like this:
public class DomainEntityModelBuilder : IEntityTypeConfiguration<DomainEntity>
{
public void Configure(EntityTypeBuilder<DomainEntity> entity)
{
entity.Property(d => d.Id).ValueGeneratedNever();
entity
.Property(d => d.EntityType )
.HasColumnName("entity_type")
.HasConversion<DomainTypeConverter>()
.HasColumnType("my_schema.domain_type");
}
}
Sql to create enum and type looks like this:
CREATE TYPE my_schema.domain_type AS ENUM ('DomainTypeValue1', 'DomainTypeValue2', 'DomainTypeValue3');
CREATE TABLE my_schema.domain_entity
(
id UUID PRIMARY KEY NOT NULL,
entity_type my_schema.domain_type NOT NULL
)
When I tried to save DomainEntity I get error:
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
---> Npgsql.PostgresException (0x80004005): 42804: column "entity_type" is of type my_schema.domain_type but expression is of type text
Is it possible to save text value as a postgres enum type?
- 主要语言
- C#
- 星标
- 1.8k
- 派生
- 268
- 平均合并
- 2 小时 35 分钟
- 30 天内合并 PR
- 136
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
npgsql/efcore.pg 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
NTS: the M ordinate is dropped from geometry SQL literals and from geometries stored in JSON可能已有人在做 @Ahmed7991 于 5 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 85/100
npgsql/efcore.pg#4093 · 1 条评论 ·
维护者通常 1 天内回复
-
`TimeSpan`/`Duration` component members: negative values are floored, and intervals computed in SQL are read field by field可能已有人在做 @jeremy-morren 于 11 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
Numeric storage parameters are formatted with the current culture, so migrations emit 0,01 instead of 0.01可能已有人在做 @Sorbitol 于 12 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 30/100
维护者通常 1 天内回复
-
`Contains` on a JSON primitive collection compares JSON text, so `DateTime` and `TimeOnly` items never match可能已有人在做 @Mr444-dev 于 7 天前认领。 未关闭
难度 4/5 3-5 天 新手友好度 45/100
npgsql/efcore.pg#4099 · 1 条评论 ·
维护者通常 1 天内回复
相似的 Issue
-
Issue-Bug Needs-Triage
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
JiaFeiMiao-K-Cat/DiscImageStudio#281 ·
维护者通常 1 天内回复
-
area/access-management Frontend onboarding candidate :handshake:
难度 2/5 1-3 小时 新手友好度 65/100
Altinn/altinn-auth#4941 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
aws/aws-sdk-net#4586 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
Kryptos-FR/MarkView.Avalonia#269 · 1 个 reaction ·
维护者通常 1 天内回复