首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ .Include()

LINQ .Include()
EN

Stack Overflow用户
提问于 2015-01-22 14:33:05
回答 1查看 1.3K关注 0票数 2

我试图写一些LINQ来连接这些表,但这会给我带来错误。这是我的密码

代码语言:javascript
复制
public PartialViewResult Getjobs(int id)
{
    using (var db = new MTEntities())
    {
        var jobs = db.jobs.Include(j => j.jobslist)
            .Include(jl => jl.jobslist.model_jobslist
            .Where(aa=>aa.jobslist.JobsListID==jl.jobslist.model_jobslist.JobsListID))
            .Where(bki => bki.BookingID==id)
            .ToList();

        if (jobs != null)
        {
            return PartialView("_JobDetails", jobs);
        }

我正试图从model_joblist表中显示传入预订id的大约时间。

代码语言:javascript
复制
<th>
    @Html.DisplayNameFor(model =>model.jobslist.model_jobslist.ApproxTime))
</th>

这个是可能的吗?

错误5 'System.Collections.Generic.ICollection‘不包含'JobsListID’的定义,也找不到接受'System.Collections.Generic.ICollection‘类型的第一个参数的扩展方法'JobsListID’(您缺少使用指令还是程序集引用?)Controllers\BookingController.cs 90 97 MechanicTracker,这是一个错误

EN

回答 1

Stack Overflow用户

发布于 2015-01-22 16:06:18

这里有多个错误。首先,我建议查找包含,因为包含不用于联接。这里根本不需要它来使查询工作,但出于性能考虑,它将是有用的。

其次,传递给_JobDetails的作业将是List<job>类型的,因此@Html.DisplayNameFor(model =>model.jobslist.model_jobslist.ApproxTime))是错误的。

第三,如果要显示ApproxTime的值,则需要@Html.DisplayFor而不是@Html.DisplayNameFor。但是,由于代码片段在第四个元素中,您可能确实想要DisplayNameFor,而且根本没有发布相关的代码。

要创建查询,只需使用:

代码语言:javascript
复制
var jobs = db.jobs.Where(bki => bki.BookingID==id).ToList();

如果您需要Include以提高性能,请稍后添加它们。有关此问题的帮助,请参阅答案末尾的链接。

然后,为了显示,它将取决于您想要的。您将有一个职务列表,因此可能如下所示:

代码语言:javascript
复制
foreach (var job in Model) {
    ...Some HTML...
    job.jobslist.model_jobslist.ApproxTime.ToString("whatever date format you want")
    ...Some more HTML...
}

一些有用的链接:

日期和时间格式

如何使用include语句

如何使用联接语句

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28091262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档