我正在使用此查询从数据库中获取数据。
string nfc = "53f8372c";
var temp = db.tempTable.AsNoTracking().Where(
x =>
x.uid.Equals(nfc, StringComparison.CurrentCultureIgnoreCase)
&& x.ENDED == null
&& x.STATUS.Equals(Constants.ACTIVE)
);
从此查询生成的sql是:
{SELECT
"Extent1"."ID" AS "ID",
"Extent1"."uid" AS "uid",
"Extent1"."ENDED" AS "ENDED",
"Extent1"."STATUS" AS "STATUS",
FROM "tempTable" "Extent1"
WHERE (("Extent1"."uid" = :p__linq__0) AND ("Extent1"."ENDED" IS NULL) AND ('Active' = "Extent1"."STATUS"))}
为什么将 53f8372c 转换为:p__linq__0 ?
答案 0 :(得分:6)
那只是参数化SQL。如果查看传递给查询的参数,您会发现:p__linq__0
的值为53f8372c
。
此参数化很有用,因为服务器可以缓存查询计划并使用不同的参数值将其重用于同一查询。