【发布时间】:2015-11-18 11:35:54
【问题描述】:
我已经在这两天了。我不太擅长 Linq 表达式,所以请原谅简单。我有两个相关的表,在 TSQL 中编写连接很容易,但我使用的是 Entity Framework 和 Linq。
我在 LINQPad 中破解了一个查询(通过阅读文章和教程),它最终返回了我想要的结果。
现在我需要帮助将其转换为 C# 代码。我有谷歌的翻译网站,找到了很多关于 Linq 的 SQL,但没有找到我正在做的事情……很可能是因为我什至不知道我使用了正确的搜索词。
我的 LINQPad 代码是这样的:
DashboardNavigations
.OrderBy(x => x.Id)
.Select(x => new
{
x.Id,
x.Name,
x.Description,
x.ImageUrl,
SubDash = SubDashNavs
.Where(s => s.DashId == x.Id)
.Select(y => new { y.Id, y.Name, y.Description })
})
我习惯于像这样将 SIMPLE Linq 表达式写入实体框架:
var query = _mlsDashboardNavRepository.Table;
query = query.OrderBy(c => c.Id);
var dashnav = query.ToList();
如您所见,我返回了主要记录,但无法正确连接。
我需要帮助的是将代码从 LINQPad 转换为 C#/EF/LINQ 到 SQL....????
【问题讨论】:
-
包括你将如何用 SQL 编写它,我将向你展示它的 Linq。
-
我认为问题在于您需要可以访问 DashboardNavigations 和 SubDashNavs 的 som 上下文。如果我错了,请纠正我,但
_mlsDashboardNavRepository.Table似乎是一个仅指 DashboardNavigations 的上下文。 -
使用 LINQ to SQL 和正确的上下文(数据库不是表),您应该能够像在 LINQPad 中一样编写查询。
标签: c# entity-framework linq