在調試代碼的時候發現,EF生成的SQL查詢超慢(40s的查詢語句),然後自己根據需求寫的SQL運行只需要(0.001s)左右,對比了一下倆個SQL語句,發現ef生成的在條件後面會多出(XX IS NULL) OR(XX IS NULL)語句的尾巴,刪掉後,就正常了。
經過多番查詢後找到以下解決方案:
1、this.Configuration.UseDatabaseNullSemantics = true; //關閉Ef自動生成的null判斷語句
2、在varchar類型上增加限定 [StringLength]或者是[Require]