之前有介紹 Stored Procedure(預存程序)的單元測試,這部分需要搭配 EF Core Power Tools
工具先做到逆向工程,方便產生相關 entities 類別,其中包含SP,但在實務上會遇到瓶頸
假設目前設計一個 SP,大概是撈取 Customers 資料表的資料
此時透過 EF Core Power Tools 逆向工程做出來 Result 如下
可以看出對應的欄位都有做出來,很方便
此時若不幸的 SP 內容中,插入一段去呼叫另一個 SP 例如 usp_GetCategory
同步修改 usp_GetCustomers 的內容,內容中會去呼叫 usp_GetCategory
此時,透過 EF Core Power Tools 重新整理(或是重新逆向工程)
完成後,觀察 usp_GetCustomersResult 類別,相關屬性值變成 Id,Text
怎麼跟一開始的有所出入?推測,因為逆向工程判斷到執行 usp_GetCategory 後,
以為拿到回傳值就是最後結果了,後續就不判斷了
若要解決這個問題,可將回傳值先用 table 變數介接,調整如下
此時,重新整理 ER-Model,欄位既可正常產出
參考
沒有留言:
張貼留言