基本上,我有一个查询,在这里我需要检查数据是否存在于另一个表上。
bool isInUse;
IsInUse = entity.H83SAF_HEALTH_PLAN.H83SAF_CONSENT.Any();当我使用离合器捕获查询以查看发生了什么情况时,我可以看到查询基本上是这样运行的:
SELECT
"Extent1"."ACTIVE" AS "ACTIVE",
"Extent1"."IS_COMPLETE" AS "IS_COMPLETE",
"Extent1"."DATE_CREATED" AS "DATE_CREATED",
"Extent1"."DATE_MODIFIED" AS "DATE_MODIFIED",
"Extent1"."CREATED_BY" AS "CREATED_BY",
"Extent1"."MODIFIED_BY" AS "MODIFIED_BY"
...more columns..natter, natter..
FROM "H83FTF"."H83SAF_CONSENT" "Extent1"
WHERE ("Extent1"."HEALTH_PLAN_ID" = 1)查询本身很好。.Any()语句有问题。我认为应该发生的是,当满足.Any()条件时,查询应该突然退出。
然而,当我运行该查询时,似乎该查询正在带回超过18,000条记录(我不使用这些记录),我只想看看如果满足条件,数据是否存在于另一个表上--实际上,当使用.Any()语句执行18,000行时,查询会关闭网站。
第一行满足了条件,但我的理解是,.Any()应该在条件满足时退出或停止。
我尝试了firstordefault(),但是它仍然在内存中获取18000行.
发布于 2017-04-11 16:39:03
最后得出的结论是,在EF5.0上使用.Any()并不能转化为Oracle11g中的存在--解决方案是直接调用并返回是或否。
https://stackoverflow.com/questions/43242308
复制相似问题