C# 使用投影后立即忽略Include(..)语句
我有一个方法,(艺术家和流派)在使用select子句时抛出空引用异常。如果不使用select子句,则它无法将system.collections.generic.list转换为system.collections.generic.ienumerableC# 使用投影后立即忽略Include(..)语句,c#,asp.net,asp.net-mvc,entity-framework,linq,C#,Asp.net,Asp.net Mvc,Entity Framework,Linq,我有一个方法,(艺术家和流派)在使用select子句时抛出空引用异常。如果不使用select子句,则它无法将system.collections.generic.list转换为system.collections.generic.ienumerable public ActionResult Attending() { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var gigs = _conte
public ActionResult Attending()
{
var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;
var gigs = _context.Attendances.Include(a => a.Gig.Artist).Include(a => a.Gig.Genre).Where(a => a.AttendeeId == userId).ToList();
var viewModel = new GigsViewModel()
{
UpcomingGigs = gigs,
ShowActions = User.Identity.IsAuthenticated,
Heading = "Gigs I'm Attending"
};
return View("Gigs", viewModel);
}
这是我的ViewModel:
public class GigsViewModel
{
public IEnumerable<Gig> UpcomingGigs { get; set; }
public bool ShowActions { get; set; }
public string Heading { get; set; }
}
在哪一行抛出异常?这一行…….var gigs=\u context.attentations.Where(a=>a.AttendeeId==userId)。选择(a=>a.Gig)。包括(g=>g.Artist)。包括(g=>g.Genre)。ToList();这一行
User.FindFirst(ClaimTypes.NameIdentifier).Value
,因为引发异常的部分User.FindFirst(ClaimTypes.NameIdentifier)
是null
,您正在对其调用.Value
。否..用户ID没有引发异常..所以只有经过身份验证的用户才能访问此代码?
public class Attendance
{
public Gig Gig { get; set; }
public ApplicationUser Attendee { get; set; }
[Key]
public int GigId { get; set; }
[Key]
public string AttendeeId { get; set; }
}