Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 如何从和具有相关实体的实体返回不同的行_Linq_Entity Framework - Fatal编程技术网

Linq 如何从和具有相关实体的实体返回不同的行

Linq 如何从和具有相关实体的实体返回不同的行,linq,entity-framework,Linq,Entity Framework,我有一个与其他实体(相关实体)有关联的实体。我试图从主实体返回不同的行,主实体需要包含来自相关实体的数据,这样我就可以在下游使用相关实体的属性 下面是我正在使用的语句,但它不返回任何行。最好的方法是什么 下面是我的代码 return context.UserDisplays.Include("CurrentJob").Where(d => d.UserName == userName).GroupBy(d => d.CurrentJob.JobNo).Select(g => g

我有一个与其他实体(相关实体)有关联的实体。我试图从主实体返回不同的行,主实体需要包含来自相关实体的数据,这样我就可以在下游使用相关实体的属性

下面是我正在使用的语句,但它不返回任何行。最好的方法是什么

下面是我的代码

return context.UserDisplays.Include("CurrentJob").Where(d => d.UserName == userName).GroupBy(d => d.CurrentJob.JobNo).Select(g => g.FirstOrDefault()).ToList();

任何帮助都将不胜感激

编辑-用于ComplexProperty

我相信一旦你做了一个
GroupBy
所有
Include
方法都会被忽略。因此,您需要迭代列表,并对每个项调用
LoadProperty
方法。应该是这样的

var list = context.UserDisplays
                  .Where(d => d.UserName == userName)
                  .GroupBy(d => d.CurrentJob.JobNo)
                  .Select(g => g.FirstOrDefault()).ToList();

foreach(var item in list)
{
   context.LoadProperty(item, "CurrentJob");
}

return list;

查看本文中的Distinct(Set操作符)部分 您是否要求使用不同的用户显示?或者不同的用户或不同的作业

我会试着说

var object = (from userDisplay in context.UserDisplays.Include("CurrentJob")
.Where userDisplay.UserName == userName
Select userDisplay).Distinct();

(对不起,我不喜欢我的VB风格,但应该是一样的…

我也会尝试看看底部附近有一些很棒的“独特”示例VB风格很好…我感谢您的帮助。我希望从UserDisplays中获得不同的作业ID。每个显示器都有多个作业。我将查看这篇文章,并介绍您的示例,看看我得出了什么,然后发布结果。如果您只想将作业ID作为整数列表而不是实际对象,那么在选择行上执行select userDisplay.JobNo).Distinct();你能澄清一下你所说的CurrentJobReference是什么意思吗?这是相关实体吗?如果是这样,ComplexProperty(CurrentJob)不会在intellisense中显示Load()方法。少了什么吗?