EF/EFCore在我看来是多么优秀的数据访问技术,对于常用sql server、mysql、oracle、sqlite等关系型数据库作为存储来说,可谓是一套代码各路使用,十分完美,加上first-code,可全权代码管理操作,记住,是“全权代码管理”,这意味着你可在代码中做SSMS、mysql workbench、PL/SQL for Developers等数据库管理工具所能做的事情,如定义表名、索引等等,且更灵活妙用,可谓是市面不可多得。而现实中,我在面试的路上偶尔会遇上某些面试官说EF多坑呀,他们都在用dapper、mybatis、nhibernate?其实我不想说什么,话说人各有志,八仙过海各显神通,有些人喜欢大量招人加班加点夜以继日做事,而不愿意用最锋利的工具做最省心的事情。
好了,直接进入正题, 我们在使用EF/EFCore时,
IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate)
where的灵活性和不可避开性,我们不得不深入探讨它和尊重它的存在。我们都喜欢使用where来做自己通用方法的封装,已是常见有类似这样的方法封装:
IEnumerable<T> Find(Expression<Func<T,