有谁知道如何翻译此内容?当我打开调试器时,我得到3个不同的查询,而var包含一组结果。我试图用一个将调用存储过程的方法替换该行,但我不明白查询应该是什么。非常感谢将LINQ转换为SQL
var restbl =
context.tbl_one.FirstOrDefault(d => d.qty < d.tbl_two.Count(a => !a.tbl_three.ust))
?? context.tbl_one.FirstOrDefault(d => d.qty > d.tbl_two.Count(a => !a.tbl_three.ust));
{SELECT
`Extent1`.`id`,
`Extent1`.`name`,
`Extent1`.`qty`,
`Extent1`.`cdate`
FROM `tbl_one` AS `Extent1`}
{SELECT
`Extent1`.`id`,
`Extent1`.`tbl_one_id`,
`Extent1`.`tbl_three_id`,
`Extent1`.`enabled`
FROM `tbl_two` AS `Extent1`}
{SELECT
`Extent1`.`id`,
`Extent1`.`ttid`,
`Extent1`.`code`,
`Extent1`.`cdate`,
`Extent1`.`mdate`,
`Extent1`.`prt`,
`Extent1`.`ust`
FROM `tbl_three` AS `Extent1`}
var countToAdd = restbl.qty - context.tbl_two.Count(a => a.tbl_one_id == restbl.id && !a.tbl_three.ust);
你应该重构LINQ语句转换成'context.tbl_one.FirstOrDefault(d => firstCondition || secondCondition)'。这将是一个SQL语句。 –
但条件有道理吗?是不是像'qty!= count'一样? –
谢谢@GertArnold,对不起,我的linq理解非常糟糕。我总是使用存储过程并避免使用linq。我知道很多人会说我应该使用linq来代替,但是使用直接sql并且创建一个方法来调用它会容易得多。条件是有道理的,程序工作正常,我只是想替换edmx和linq。 – carol1287