c# - 无法访问转换查询中的表(从纯 SQL 到 LINQ)

标签 c# linq entity-framework linq-to-entities sql-to-linq-conversion

我正在尝试将这个有效的 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());

最佳答案

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 };

关于c# - 无法访问转换查询中的表(从纯 SQL 到 LINQ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6095058/

相关文章:

c# - 如何在 SQLite.net 中查询 View ?

c# - 如何使用 Linq to objects 按固定数量对我的选择进行分组?

C# 库尔德语言本地化

c# - linq2db.MySql - 无法找到源类型的查询模式的实现。未找到的地方

c# - 打印控件

c# - DataContext 到数据库

entity-framework - Entity Framework - 我应该从 BLL 还是 DAL 调用 DbContext

entity-framework - NHibernate 的三级缓存

c# - 为什么在MVC中调用GetType Name得到的是一组数字?

c# - 将 C# 委托(delegate)传递给 C++/CLI 包装器