這是我的LINQ(EF):LINQ不讀書圓括號
var ls = from ps in ctx.Package_Services
where
(ps.Package.Policy.Name != "Short-Term Career Policy"
&& ps.Package.Name != "Early Talent Package")
&&
(ps.Package.Policy.Name != "Assignment Policy"
&& ps.Package.Name != "Efficient Package")
select new
{
Service = ps.Service,
PackageService = ps
};
這是它產生的相關的SQL:
WHERE (N'Early Talent Package' <> [Extent2].[Name])
AND (N'Efficient Package' <> [Extent2].[Name])
AND (N'Short-Term Career Policy' <> [Extent3].[Name])
AND (N'Assignment Policy' <> [Extent4].[Name])
我想要說的是,「我不我不想組合X,我也不想組合Y;但是,我確實需要「早期人才套餐」,他們沒有與「短期就業政策」聯繫在一起。而且,我也想要「高效套餐」不與「分配政策」相關聯。
如何將它轉換成LINQ?
如果去掉括號中的邏輯仍然是相同的。嘗試將括號外的'&&改爲'||',我期望它能夠保留它們。 – Jonesopolis
如果我將'&&'更改爲'||',它包含了所有的東西,就好像我根本沒有'where'一樣。 – user1477388
即使是上面的最後一個示例,也可以刪除所有這些括號,它會產生相同的結果。 –