0

我目前正在一个项目中使用 Linq-to-SQL 来避免使用存储过程。我几乎完成了避免所有存储过程,但我有一个 T-SQL 查询,我发现它很难转换为 Linq。

任何人都可以帮助我进行转换吗?

select 
    EM.EmployerID, EM.EmployerName, AD.City, AD.County, JR.InstanceValue 
from 
    JobResults JR
inner join 
    Employers EM on JR.EmployerName = EM.EmployerName
inner join 
    Addresses AD on EM.AddressID = AD.AddressID
where 
    JR.IsPremium = 1 
    and JR.FieldName = 'Job Title'
group by 
    EM.EmployerID, EM.EmployerName, AD.City, AD.County, JR.InstanceValue

更新

这是我尝试过的:

var query = (from jr in database.JobResults
             join em in database.Employers
                   on jr.EmployerName equals em.EmployerName
             join ad in database.Addresses
                 on em.AddressID equals ad.AddressID
             where jr.FieldName == "Job Title" && jr.IsPremium == true
             select new { jr.JobID, em.EmployerID, em.EmployerName, ad.City, ad.County, jr.InstanceValue }).GroupBy(p => new { p.EmployerID, p.EmployerName, p.City, p.County, p.InstanceValue, p.JobID }).ToList();

我坚持使用Group By多个连接查询的子句

4

1 回答 1

2
var query = (from jr in database.JobResults
             join em in database.Employers
                   on jr.EmployerName equals em.EmployerName
             join ad in database.Addresses
                 on em.AddressID equals ad.AddressID
             where jr.FieldName == "Job Title" && jr.IsPremium == true
             group new { jr, em, ad } by new {
                 jr.JobID,
                 em.EmployerID,
                 em.EmployerName,
                 ad.City,
                 ad.Country,
                 jr.InstanceValue
             } into g
             select new {
                 g.Key.JobID,
                 g.Key.EmployerID,
                 g.Key.EmployerName,
                 g.Key.City,
                 g.Key.Country,
                 g.Key.InstanceValue
             }).ToList();
于 2013-09-06T19:48:41.690 回答