直接參考這文章做就差不多了
很多人會卡在Scaffold-DbContext這一關
重點是要注意一下PORT ,因為informix EF Core用的是DRDA的port,所以不是之前我們用odbc的(預設)9088而是9089.
如同上述內文說的:Please note: The IBM Data Server providers only works with the Distributed Relational Database Architecture™ (DRDA) protocols, and you therefore need to ensure that your Informix server is configured accordingly.
(這點你要跟你們家的DBA問一下給不給連,也要問網管開不開port,說真的,我也沒把握一次要他們從DEV、UAT到Production這樣一次開這麼多東西給你,所以本單元真的就是自己練功用的)
上述超連結提到的package有點舊了,我實驗的package有update,也都正常
-----------project target framework是.net 6.0------------------
-----------------------------
這是我localhost的scaffold-Dbcontext script,留做我日後小抄用
-------------------------------------------------------------
Scaffold-DbContext -Connection "user id=informix;server=localhost:9089;database=db_with_log;Password=xxxOOO" -Provider IBM.EntityFrameworkCore -OutputDir Models -Force -UseDatabaseNames -Tables test_user,test_data
--------------------------------------------
彩蛋一下:
這份PDF不錯,如果你是.net+informix的重度使用者,可以看一下
OS:明明用到的機會渺茫.我還是堅持到底地把它試出來玩了幾番,這也是種職業病吧
如果遇到讀舊資料會出錯的現象
回覆刪除如,在ctx.test_user.To_List()時,出現
"cast not valid"的錯誤
「IBM.Data.Db2.DB2DataWrapper.GetStringValue(String calledFrom)\r\n at IBM.Data.Db2.DB2DataReader.GetString(Int32 i)...」
(明明是取int,怎麼會是變GetString?)
先別管為什麼,解決之道就是全部重塞就是了,真的