亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 group by 時 npgsql 數據類型未知

使用 group by 時 npgsql 數據類型未知

C#
慕村9548890 2023-05-14 16:34:37
我有 2 個表:CREATE TABLE "book" (  "id" serial PRIMARY KEY,   "ean_number" TEXT NULL,   "title" TEXT NULL ); CREATE TABLE "e_book" (  "id" serial PRIMARY KEY,   "ean" TEXT NULL,   "title" TEXT NULL,   "format" VARCHAR(255) NOT NULL,   "physical_book_ean" TEXT NULL ); 從書到電子書存在一對多或無關系。我想在我的代碼中運行這樣的查詢:var q = "select b.*, array_agg(e) ebooks from book b " +         "left join e_book e on e.physical_book_ean = b.ean_number " +         "group by b.id";using (var cmd = new NpgsqlCommand(q, conn))using (var reader = cmd.ExecuteReader())    while (reader.Read())    {        //read data    }array_agg 列電子書作為內容類型出現<unknown>如何定義內容類型以便我可以閱讀它?
查看完整描述

1 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

那里給出的答案是:

首先,如果您創建 e_book 表并在同一進程中查詢它,您需要告訴 Npgsql 重新加載數據庫類型定義。這是因為當 Npgsql 首次連接到數據庫時,它會加載類型列表并將其緩存 - 但此時 e_book 類型尚不存在。如果您使用已經存在的表再次運行您的應用程序,您應該不再有這個問題,或者您可以調用 Npgsql.ReloadTypes()。

其次,您需要在連接字符串上傳遞 LoadTableComposites=true 標志,告訴 Npgsql 加載所有復合類型——包括那些與表相對應的復合類型。Npgsql 默認情況下不會這樣做,因為表的數量可能很大并且在某些情況下會影響啟動性能。


查看完整回答
反對 回復 2023-05-14
  • 1 回答
  • 0 關注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號