有誰知道如何翻譯此內容?當我打開調試器時,我得到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