前段時間改用core框架,粗略看了下,因為用了成熟的框架,所以工作上是直接上手寫代碼,.net core一知半解。
今兒突然興起開始看看微軟文檔啥的,剛看的入門,看着例子簡單本來覺得上手一遍直接帶過,結果被狠狠打臉。。。
一個簡單入門例子地址
結果一邊下來F5,直接捕獲了個異常:
感覺很奇怪,按照教程說法不應該是對象不存在直接創建嗎,百度了吧說是字符串配置錯誤啥的。
因為我連接字符串指向的是本地的一個庫,調用 context.Database.EnsureCreated()時返回的時false,這其實是找到數據庫了。
但是調用到context.Students.Any()就嗝屁了
看看數據庫,也沒啥啊
就一個Test庫里有一張Test表,當時隨便起了個名字
於是我該鏈接字符串,改個沒有的庫F5,成功了。。。然后我就懷疑是不是庫名和表名搗的鬼。
我刪了Test表,字符串還是改成Test數據庫 F5 順利通過。。。。艹
折騰半天原來是表名和數據庫名字一樣(如下更正原因↓↓↓↓)出的錯,跑完后,表成功創建,於是我又把Test表建起來了,F5 跑到context.Students.Any()時卻是沒有報錯,返回了true。
更正上述錯誤:context.Database.EnsureCreated() 創建表的時候試了下會有如下情況:
- 有庫沒有表 返回:true 創建新表
- 有庫有表 返回:false 未做任何操作
- 無庫 返回:true 創建新庫新表
由於有庫有表(非Student表) 並未做任何事情,所以Student表並未找到 所以執行到 context.Students.Any() 時報錯
所以啊,還是要嚴謹!慎重!