Код: Выделить всё
public class PrimaryRow {
public int Id { get; set; }
public string Value { get; set; }
public OptionalRow { get; set; }
}
public class OptionalRow {
public int Id { get; set; }
public string OptionalValue { get; set; }
public int PrimaryRowId { get; set; }
public PrimaryRow PrimaryRow { get; set; }
}
public class MyContext : DbContext {
public DbSet
PrimaryRows { get; set; }
public DbSet OptionalRows { get; set; }
}
Код: Выделить всё
CREATE TABLE "PrimaryRows" (
"Id" INTEGER NOT NULL CONSTRAINT "PK_PrimaryRows" PRIMARY KEY AUTOINCREMENT,
"Value" TEXT NULL
)
CREATE TABLE "OptionalRows" (
"Id" INTEGER NOT NULL CONSTRAINT "PK_OptionalRows" PRIMARY KEY AUTOINCREMENT,
"OptionalValue" TEXT NULL,
"PrimaryRowId" INTEGER NOT NULL,
CONSTRAINT "FK_OptionalRows_PrimaryRows_PrimaryRowId" FOREIGN KEY ("PrimaryRowId") REFERENCES "PrimaryRows" ("Id") ON DELETE CASCADE
)
Код: Выделить всё
var rows = await MyContext.PrimaryRows
.Include(p => p.OptionalRow)
.ToListAsync();
Код: Выделить всё
SELECT "p"."Id", "p"."Value", "p0"."Id", "p0"."OptionalValue", "p0"."PrimaryRowId"
FROM "PrimaryRows" AS "p"
LEFT JOIN "OptionalRows" AS "p0" ON "p"."Id" = "p0"."PrimaryRowId"
Однако, когда я смотрю на содержимое строк, необязательный > свойство имеет значение NULL! Таким образом, запросы работают, а привязка данных — нет.
Что мне ее не хватает?
Подробнее здесь: https://stackoverflow.com/questions/787 ... s-when-que