LINQ syntax for SQL INNER JOINS



我对linq完全是个新手。

我有一个T-SQL语句,我不知道它是用Linq写的。

数据库表结构如下:数据库结构

SQL代码如下所示:

SELECT 
e.PersonId, e.PhoneNoId, e.PhoneId, s.StateId, e.AssignDate, e.DiscardDate, e.Note
FROM
dbo.Evidence AS e 
INNER JOIN
dbo.Phone AS p ON e.PhoneId = p.PhoneId 
INNER JOIN
dbo.[State] AS s ON p.StateId = s.StateId

我想知道如何用lambda表达式在linq中编写这段代码。

谢谢你的帮助。

您可以使用在LINQ中编写T-SQL查询

  • 任一查询表达式语法:

    // Declare query.
    var query =
    from e in db.Evidence
    join p in db.Phone on e.PhoneId equals p.PhoneId
    join s in db.State on p.StateId equals s.StateId
    select new {e.PersonId, e.PhoneNoId, e.PhoneId, s.StateId, e.AssignDate, e.DiscardDate, e.Note};
    // Execute query.
    var result = query.ToList();
    
  • 或基于方法的查询语法:

    // Declare and execute query.
    var result =
    db.Evidence
    .Join(db.Phone, e => e.PhoneId, p => p.PhoneId, (e, p) => new {e, p})
    .Join(db.State, t => t.p.StateId, s => s.StateId, (t, s) =>
    new {t.e.PersonId, t.e.PhoneNoId, t.e.PhoneId, s.StateId, t.e.AssignDate, t.e.DiscardDate, t.e.Note});
    .ToList(); // Method "ToList()" executes query.
    

在此示例中,变量db的类型为DbContext(我假设您将使用EntityFramework(。

有关详细信息,请参阅下一个链接:

  • Join(查询表达式语法(
  • 执行内部联接(查询表达式语法(
  • Join(基于方法的语法(
  • 联接方法文档
  • EntityFramework核心

相关内容

  • 没有找到相关文章