Ich versuche, ein verschachteltes Mapping auszuführen, aber das verschachtelte Objekt ist null. Was bedeutet, in meinem Fall result[0].Location
ist null. Ich verwende NPOco 3.3.0-beta3 zusammen mit Postgres.Verschachteltes Objekt-Mapping mit NPoco 3
Hier ist der Code-Schnipsel:
var db = new Database(new NpgsqlConnection(configurations["ConnectionStrings:Database"]));
var sql = Sql.Builder
.Append("SELECT r.*, l.* FROM race r")
.Append("INNER JOIN location l ON r.location_id = l.id");
using (db.Connection)
{
db.Connection.Open();
var result = Db.Fetch<RaceEntity>(sql);
// result[0].Location == null
}
RaceEntity:
[TableName("race")]
[PrimaryKey("id", AutoIncrement = true)]
public class RaceEntity
{
[Column("id")]
public int Id { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("location_id")]
public int LocationId { get; set; }
[Column("date")]
public DateTime Date { get; set; }
[ResultColumn]
public LocationEntity Location { get; set; }
}
LocationEntity
[TableName("location")]
[PrimaryKey("id", AutoIncrement = true)]
public class LocationEntity
{
[Column("id")]
public int Id { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("province")]
public string Province { get; set; }
[Column("postal")]
public string Postal { get; set; }
[Column("country")]
public string Country { get; set; }
[Column("iso_code")]
public string IsoCode { get; set; }
}
Rennen Tabelle
CREATE TABLE "race" (
"id" SERIAL PRIMARY KEY,
"name" VARCHAR(100) NOT NULL,
"location_id" INTEGER REFERENCES "location" (id),
"date" date NOT NULL
);
Lage Tabelle
CREATE TABLE "location" (
"id" SERIAL PRIMARY KEY,
"name" VARCHAR(100) NOT NULL,
"province" VARCHAR(100) NULL DEFAULT NULL,
"postal" VARCHAR(30) NULL DEFAULT NULL,
"country" VARCHAR(70) NOT NULL,
"iso_code" VARCHAR(10) NULL DEFAULT NULL
);
Entschuldigung, ich musste hier nur einen Kommentar machen: Ich verstehe nicht, wie sie das Wort poco in den Namen setzen können, wenn die Klassen alle Attribut-geschmückt sind ... das ist überhaupt kein POCO! Ich meine, schau dir Petapoco an und du wirst verstehen, was ich meine ... – code4life