在调试代码的时候发现,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]