
我试图写一些LINQ来连接这些表,但这会给我带来错误。这是我的密码
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的大约时间。
<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,这是一个错误
发布于 2015-01-22 16:06:18
这里有多个错误。首先,我建议查找包含,因为包含不用于联接。这里根本不需要它来使查询工作,但出于性能考虑,它将是有用的。
其次,传递给_JobDetails的作业将是List<job>类型的,因此@Html.DisplayNameFor(model =>model.jobslist.model_jobslist.ApproxTime))是错误的。
第三,如果要显示ApproxTime的值,则需要@Html.DisplayFor而不是@Html.DisplayNameFor。但是,由于代码片段在第四个元素中,您可能确实想要DisplayNameFor,而且根本没有发布相关的代码。
要创建查询,只需使用:
var jobs = db.jobs.Where(bki => bki.BookingID==id).ToList();如果您需要Include以提高性能,请稍后添加它们。有关此问题的帮助,请参阅答案末尾的链接。
然后,为了显示,它将取决于您想要的。您将有一个职务列表,因此可能如下所示:
foreach (var job in Model) {
...Some HTML...
job.jobslist.model_jobslist.ApproxTime.ToString("whatever date format you want")
...Some more HTML...
}一些有用的链接:
https://stackoverflow.com/questions/28091262
复制相似问题