use*_*388 0 c# sql linq entity-framework
这是我的LINQ(EF):
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
};
Run Code Online (Sandbox Code Playgroud)
这是它生成的相关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])
Run Code Online (Sandbox Code Playgroud)
我想说的是,"我不想要组合X,我也不想要组合Y;但是,我确实想要"早期人才套餐",它们与"短期职业政策"无关. "而且,当他们与"作业政策"无关时,我也想要"高效套餐".
如何将其转换为LINQ?
它可能会消除它们,因为它不需要它们.
你实际上是在说"不是这个" 和 "不是这个" 和 "不是这个" 和 "不是这个".
现在,如果你在中间有一个"OR",它必须考虑到它们:
(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")
Run Code Online (Sandbox Code Playgroud)