标志值仅在该行存在的情况下为true,否则将其设置为false。
我用SQL解决了解决方案,但是实体框架有问题。 这是SQL查询:
select p.ProductID,
(case when c.UserID = 3 then 'true' else 'false' end) as flag
from product as p
left join SavedItem as c
on p.ProductID = c.ProductID
此查询运行准确,它显示所有记录,并且仅当该列存在于SavedItem
表中时才使标志为true。
如何在实体框架中做到这一点?
答案 0 :(得分:1)
这可能是实体框架中左联接的问题。尝试以下代码:
var result = from p in Product
join c in SavedItem on p.ProductID equals c.ProductID into lj
from c in lj.DefaultIfEmpty()
select new {
p.ProductID,
flag = (c.UserID == 3 ? 'true' : 'false')
};