是否可以在LINQ查询中使用If Else条件?
就像是
from p in db.products if p.price>0 select new { Owner=from q in db.Users select q.Name } else select new { Owner = from r in db.ExternalUsers select r.Name }
Richard Ever.. 61
这可能有用......
from p in db.products select new { Owner = (p.price > 0 ? from q in db.Users select q.Name : from r in db.ExternalUsers select r.Name) }
看看它是否有效会很有趣......如果确实如此,我很乐意看到TSQL(假设它确实需要加载;对于延迟加载,可能不会太糟糕). (2认同)
Marc Gravell.. 8
我假设db
这是LINQ-to-SQL/Entity Framework /类似(不是LINQ-to-Objects);
一般来说,你使用条件语法(a?b:c)做得更好 - 但是,我不知道它是否适用于你的不同查询(毕竟,你如何编写TSQL?).
对于你可以做的事情类型的简单例子:
select new {p.PriceID, Type = p.Price > 0 ? "debit" : "credit" };
你可以做更多更丰富的事情,但我真的怀疑你可以选择有条件的表格.当然,欢迎你试试......
这可能有用......
from p in db.products select new { Owner = (p.price > 0 ? from q in db.Users select q.Name : from r in db.ExternalUsers select r.Name) }
我假设db
这是LINQ-to-SQL/Entity Framework /类似(不是LINQ-to-Objects);
一般来说,你使用条件语法(a?b:c)做得更好 - 但是,我不知道它是否适用于你的不同查询(毕竟,你如何编写TSQL?).
对于你可以做的事情类型的简单例子:
select new {p.PriceID, Type = p.Price > 0 ? "debit" : "credit" };
你可以做更多更丰富的事情,但我真的怀疑你可以选择有条件的表格.当然,欢迎你试试......