sql >> Databasteknik >  >> RDS >> PostgreSQL

Array av sammansatt typ som lagrad procedurinmatning som skickas av C# Npgsql

Mappa dina CLR-typer

Det är fortfarande möjligt, och i vissa fall nödvändigt, att ställa in en explicit mappning för dina CLR-typer. Att göra det ger följande fördelar:

Du vet längre behöver ange egenskapen DataTypeName på din parameter. Npgsql kommer att härleda datatypen från din angivna CLR-typ.

Oskrivna läsmetoder som NpgsqlDataReader.GetValue() kommer att returnera din CLR-typ istället för ett dynamiskt objekt (se nedan). I allmänhet bör du använda den inskrivna NpgsqlDataReader.GetFieldValue(), så detta borde inte vara viktigt.

Du kan anpassa namnmappningen för varje typ (se nedan). För att ställa in en global mappning för alla dina anslutningar, lägg den här koden före din första öppning:

 NpgsqlConnection.GlobalTypeMapper.MapEnum<SomeEnum>("some_enum");
 NpgsqlConnection.GlobalTypeMapper.MapComposite<SomeType>("some_composite");

Om du inte vill ställa in en mappning för alla dina anslutningar kan du ställa in den endast en anslutning:

var conn = new NpgsqlConnection(...);
conn.TypeMapper.MapEnum<SomeEnum>("some_enum");
conn.TypeMapper.MapComposite<SomeType>("some_composite");

http://www.npgsql.org/doc/types/enums_and_composites.html




  1. Postgresql-socket-fel när Djangos syncdb körs (mac OS 10.7.5)

  2. SQL Server 2008 Kör trigger efter infogning, uppdatering låser den ursprungliga tabellen

  3. MySql-uppdatering efter att ha infogat nodejs

  4. Hur man delar en sträng i Oracle