Ed *_*nek 2 c# linq lambda linq-to-sql
这工作正常(从初始测试).
由于方法链接是我的首选格式,我试图弄清楚链接等效方法是什么,但没有运气.有任何想法吗?
var data = (from p in db.Persons
from c in db.Companies
where c.CompanyName == companyName && p.CompanyId == c.CompanyId
select p)
.Select(p => new
{
Id = p.PersonId,
Name = string.Format("{0} {1}", p.FirstName, p.LastName)
});
Run Code Online (Sandbox Code Playgroud)
谢谢, -
埃德
我会重新排序查询以过滤掉第companyName
一个,然后执行连接.这将允许您使用这种流畅的语法:
var query = db.Companies.Where(c => c.CompanyName == companyName)
.Join(db.Persons, c => c.CompanyId, p => p.CompanyId, (p, c) => p)
.Select(p => new
{
Id = p.PersonId,
Name = string.Format("{0} {1}", p.FirstName, p.LastName)
});
Run Code Online (Sandbox Code Playgroud)
话虽如此,在查询语法中编写查询要容易得多,为什么要限制自己呢?复杂的连接在查询语法中通常更好,你也可以使用SelectMany
连接格式from ... from...
而不是join p in ... on x equals y
.有关更多详细信息,请参阅此问题:何时优先使用SelectMany()表示的连接超过Linq中使用join关键字表示的连接.
归档时间: |
|
查看次数: |
2559 次 |
最近记录: |