SQL INNER JOINS 的 LINQ 语法
LINQ syntax for SQL INNER JOINS
我是linq的新手。
我有一个我不知道用 Linq 写的 T-SQL 语句。
数据库表结构如下所示:DB structure
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
)。
有关详细信息,请参阅下一个链接:
我是linq的新手。
我有一个我不知道用 Linq 写的 T-SQL 语句。
数据库表结构如下所示:DB structure
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
)。
有关详细信息,请参阅下一个链接: