When enum of non-int type used in query, it loose bitwise operations, so enum_value.HasFlag(other_value) can't be executed in PostgreSQL, since value mapped to numeric.
Example enum:
[Flags]
enum UsageFlags : long
{
None = 0,
VariantA = 1,
VariantB = 2,
VariantC = 4,
}
Example query:
var first = from something in somethingDbSet
where something.Mark == usedMark
select new
{
something.Value,
Flags = UsageFlags.VariantA | UsageFlags.VariantB
};
var second = from value in first
where value.Flags.HasFlag(Usage.VariantB)
select value.Value
Chunk with translated SQL: WHERE u."Flags" & 2.0 = 2.0
Npgsql version: 10.0.3
When enum of non-
inttype used in query, it loose bitwise operations, soenum_value.HasFlag(other_value)can't be executed in PostgreSQL, since value mapped tonumeric.Example enum:
Example query:
Chunk with translated SQL:
WHERE u."Flags" & 2.0 = 2.0Npgsql version: 10.0.3