Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
C# 基于匿名类上的导航属性的LINQ to Entities null条件_C#_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

C# 基于匿名类上的导航属性的LINQ to Entities null条件

C# 基于匿名类上的导航属性的LINQ to Entities null条件,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,我正在LINQ to Entities查询中选择匿名类: var users = (from u in db.Users.OrderByDescending(u => u.ID).Skip(skip).Take(200) select new{ u.ID, u.FirstName, u.LastName, u.Gender, u.IsEnabled, u.Media }).ToList(); 问题在于媒体专栏媒体是一个导航属性,

我正在LINQ to Entities查询中选择匿名类:

  var users = (from u in db.Users.OrderByDescending(u => u.ID).Skip(skip).Take(200)
  select new{
              u.ID, u.FirstName, u.LastName, u.Gender, u.IsEnabled, u.Media
            }).ToList();
问题在于媒体专栏<代码>媒体是一个导航属性,可以有零个或多个对象
Media
是一个类,它有一个
URL
属性,在
User
上有自己的表和导航属性。我想选择一个匿名类,例如:

select new{
              u.ID, u.FirstName, u.LastName, u.Gender, u.IsEnabled, "u.Media's first items URL proprty, or null/empty string if u.Media is empty"
            }).ToList();

这可能吗?如果是,如何执行?

因为这是一个
linq to enities
查询,所以您可以执行此操作,无需担心空引用异常

u.Media.FirstOrDefault().Url

当fluent和query语法混合在一起时,我的眼睛很痛!关于主题:难道你不能像:
u.Media.Any()那样内联吗?u、 Media.First().Url:null
?我也讨厌这种语法,但这是解释它的最好方法:)这很有效,但有一点小小的改变。它首先抛出了一个异常,告诉我应该使用
FirstOfDefault
而不是
first
,我这样做了,然后它就工作了。因此,我的最后一个代码是
u.Media.FirstOrDefault().URL
@CanPoyrazoğlu-有趣的是,states是一个受支持的方法…我是否遗漏了什么?我不确定。。但是实体框架(或LINQ)自己的例外告诉我改为FirstOrDefault。@CanPoyrazoğlu-您使用的是哪个版本的实体框架?