【问题标题】:How to make conversion SQL Inner joins query vs Entity Framework如何进行转换 SQL 内连接查询与实体框架
【发布时间】:2014-02-24 11:46:12
【问题描述】:

这里有三个表 Service_Orders、Project_Services 和 Company。通过 Service Order 和 CompanyID 在 3 个表之间存在内部连接。 我希望下面的查询使用 C# 或 Vb.net 转换为带有 Lambda Express 的实体框架。

select top 10 * from [Service_Orders] a,[Project_Services] b,[Company] c 
where a.so_no = b.service_order and c.companyId = b.compid

【问题讨论】:

  • 为什么是 lambda 表达式?是要求吗?使用查询语法看起来会更好
  • 是的,谢谢先生,我需要在 Lamda 表达式中的一个查询
  • 对于更复杂的场景,您可以将查询放在视图中,然后在实体中选择视图中的所有内容。

标签: c# entity-framework entity-framework-4


【解决方案1】:

Lambda 语法:

var query = db.Service_Orders
              .Join(db.Project_Services,
                    a => a.so_no equals,
                    b => b.service_order,
                    (a,b) => new { a, b })
              .Join(db.Company,
                    x => x.b.compid,
                    c => c.companyId,
                    (x,c) => new { x.a, x.b, c })
              .Take(10);

更具可读性的查询语法:

var query = (from a in db.Service_Orders
             join b in db.Project_Services on a.so_no equals b.service_order
             join c in db.Company on b.compid equals c.companyId
             select new { a, b, c }).Take(10);

【讨论】:

  • select 部分可以放在from 部分之前吗?
猜你喜欢
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多