Failed to save string value to PostgreSQL enum column
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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?
- Langage dominant
- C#
- Étoiles
- 1.8k
- Forks
- 268
- Merge moyen
- 2 h 35 min
- PR mergées (30 j)
- 136
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de npgsql/efcore.pg
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
NTS: the M ordinate is dropped from geometry SQL literals and from geometries stored in JSONPeut-être pris @Ahmed7991 l’a pris il y a 5 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
npgsql/efcore.pg#4093 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
`TimeSpan`/`Duration` component members: negative values are floored, and intervals computed in SQL are read field by fieldPeut-être pris @jeremy-morren l’a pris il y a 11 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
Numeric storage parameters are formatted with the current culture, so migrations emit 0,01 instead of 0.01Peut-être pris @Sorbitol l’a pris il y a 12 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 30/100
Les mainteneurs répondent en général sous 1 jour
-
`Contains` on a JSON primitive collection compares JSON text, so `DateTime` and `TimeOnly` items never matchPeut-être pris @Mr444-dev l’a pris il y a 7 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
npgsql/efcore.pg#4099 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de npgsql/efcore.pg
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Issue-Bug Needs-Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
JiaFeiMiao-K-Cat/DiscImageStudio#281 ·
Les mainteneurs répondent en général sous 1 jour
-
bug triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
area/access-management Frontend onboarding candidate :handshake:
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Altinn/altinn-auth#4941 ·
Les mainteneurs répondent en général sous 1 jour