Я использую PostgreSQL 12 с EF6. Я пытаюсь добавить материализованное представление к своей модели, но оно не отображается в мастере модели. Я знаю, что для добавления представления в модель Entity Framework требуется, чтобы хотя бы один столбец в представлении базы данных не допускал значения NULL. Но я не уверен, как это сделать.
Я безуспешно пытался создать уникальный индекс, а также номер строки.
CREATE MATERIALIZED VIEW "Stock"
AS
SELECT coalesce(cast(ROW_NUMBER() OVER() as int), 0) as "Id",
"PartMaster"."PartID",
"OEMPart"."PartCatalogID",
"PartMaster"."PartCode",
"PartCatalog"."CustomPartCode",
"OEMPart"."OEMCode",
"PartMaster"."PartDesc",
"GoodsReceivedDetail"."Cost",
"GoodsReceivedDetail"."Markup",
"GoodsReceivedDetail"."SellingPrice",
coalesce("GoodsReceivedDetail"."Quantity", 0) as "InQuantity",
coalesce("InvoiceDetail"."Quantity", 0) as "OutQuantity",
coalesce("GoodsReceivedDetail"."Quantity", 0) - coalesce("InvoiceDetail"."Quantity", 0) as "StockQuantity"
FROM
"PartCatalog"
INNER JOIN
"PartMaster"
ON
(
"PartCatalog"."PartID" = "PartMaster"."PartID")
INNER JOIN
"OEMPart"
ON
(
"PartCatalog"."PartID" = "OEMPart"."PartID")
INNER JOIN
"GoodsReceivedDetail"
ON
(
"OEMPart"."PartCatalogID" = "GoodsReceivedDetail"."PartCatalogID")
LEFT OUTER JOIN
"InvoiceDetail"
ON
(
"GoodsReceivedDetail"."PartCatalogID" = "InvoiceDetail"."PartCatalogID")
INNER JOIN
"PartCategory"
ON
(
"PartMaster"."PartCategoryID" = "PartCategory"."PartCategoryID") ;
CREATE UNIQUE INDEX "Id"
ON "Stock" ("PartCatalogID");