无法访问转换后的查询中的表(纯SQL到LINQ)

本文关键字:SQL LINQ 访问 转换 查询 | 更新日期: 2023-09-27 17:57:29

我正在尝试将此工作SQL查询转换为LINQ查询(EF)

但是在LINQ查询中,我无法进入类别数据表。这是我正在使用的SQL查询:

SELECT cosmetics.brand, cosmetics.product, cosmetics.size, cosmetics.price, cosmetics.sale_type, cosmetics.description, cosmetics.date, cosmetics.company_id, cosmetics.category, cosmetics.[male-female], company.company_site 
FROM cosmetics INNER JOIN company ON cosmetics.company_id = company.company_id 
WHERE (cosmetics.date >= GETDATE()) 
    AND (cosmetics.[male-female] = N'female') 
    AND (cosmetics.category = N'cosmetics_perfumes') 
ORDER BY cosmetics.brand, cosmetics.product, cosmetics.size, cosmetics.price"

这运行得很好:

var female = (from c in db.cosmetics
                .Where(v => v.date > DateTime.Now)
                .Where(d => d.male_female == "female")
                .Include("company")
            select c);
return View(female.ToList());

无法访问转换后的查询中的表(纯SQL到LINQ)

var q =
  from cos in oc.cosmetics
  join com in oc.company on cos.company_id equals com.company_id
  where cos.date >= DateTime.Now
     && cos.male_female == "female"
     && cos.category == "cosmetics_perfumes"
  orderby cos.brand, cos.product, cos.size, cos.price
  select new { cos, com.company_site };