[NHibernate] Session 與 Lazy Loading
NHibernate 在同一個 Session 內 Save 實體後再 Get,會直接回傳 Session 內原物件而不重新查詢或觸發 Lazy Loading;因此沒有先把 B 指給 A.B,就算 B 已存入 Session,也無法從 A.B 取得,需在 Save 前把關聯建立好。
NHibernate 在同一個 Session 內 Save 實體後再 Get,會直接回傳 Session 內原物件而不重新查詢或觸發 Lazy Loading;因此沒有先把 B 指給 A.B,就算 B 已存入 Session,也無法從 A.B 取得,需在 Save 前把關聯建立好。
jQuery $.isEmptyObject 只能用在「單純的 JavaScript 物件」,對 boolean、number、null 會誤判為空;建議改用 $.isPlainObject 先確認是否為簡單物件再判斷,本文提供在 Chrome 實測 boolean/number/float/string/null/{}/{a:""} 的結果。
Asp.Net MVC 執行時出現「An item with the same key has already been added」+「System.Web.Mvc.DefaultModelBinder.BindProperty」錯誤,原因是 Model Binding 不區分大小寫:子類別的 Email 與父類 BaseModel 的 email…
從兩個角度解釋為何不能用 jQuery ajax 下載檔案:ajax 本身僅支援 xml/json/script/html 等文字型態 dataType,並非為下載二進位檔而設計;此外瀏覽器基於安全考量會阻止 JavaScript 直接把資料寫入本機,避免惡意腳本任意下載檔案。
Asp.Net MVC 部署到舊版 IIS / Windows Server 2008 時出現 HTTP Error 403.14 Forbidden,暫時解法是在 web.config 的 system.webServer 加上…
Asp.Net 預設單次 HttpRequest 上限 4096 KB,超過會拋 HttpException「超出最大的要求長度」;可在 web.config 的 httpRuntime 調整 maxRequestLength、requestLengthDiskThreshold 與 executionTimeout 三個參數解除限制。
比較 event.preventDefault() 與 event.stopPropagation() 的差異:前者終止元素的預設行為(例如超連結自動導頁),後者終止事件往父層元素傳導(冒泡);jQuery 使用 return false 會一次同時觸發兩者。
Visual Studio 專案屬性「建置事件」頁籤可在建置前/後自動執行 cmd,例如以 call "$(ProjectDir)AfterCompile\xxx.cmd" 搬移產出的 dll,避免手動操作遺漏;但 cmd 若等待使用者輸入會造成建置失敗。
針對 .Net Framework 4 郵件主旨含非 ASCII 字元且 UTF-8 編碼超過 41 bytes 會被重複 Encode 兩次導致亂碼的 Bug,示範不升級的解法:先把主旨 Convert.ToBase64String,再以 =?utf-8?B?{content}?= 格式指派給 MailMessage.Subject。
Code Review 案例:同仁原本用雙層 foreach 判斷 HandleWays 是否包含 CaseHandles,可改用一行 LINQ(from/where/Contains)或 Lambda(HandleWays.Where(d => CaseHandles.Contains(d)))大幅提升可讀性。