C# 相关ICollection实体不能为空
我的模型有以下字段:C# 相关ICollection实体不能为空,c#,.net,asp.net-mvc,asp.net-core,C#,.net,Asp.net Mvc,Asp.net Core,我的模型有以下字段: public ICollection<Guest> SecondaryGuests { get; set; } 这非常有效,除非我使用Create和Edit方法抛出异常: SecondaryGuests不能为空 我通过添加一个include,在Edit方法中绕过了这个问题: var guestToUpdate = await _context.Guests .Include(g => g.SecondaryGuests) .SingleO
public ICollection<Guest> SecondaryGuests { get; set; }
这非常有效,除非我使用Create
和Edit
方法抛出异常:
SecondaryGuests不能为空
我通过添加一个include
,在Edit
方法中绕过了这个问题:
var guestToUpdate = await _context.Guests
.Include(g => g.SecondaryGuests)
.SingleOrDefaultAsync(g => g.ID == id);
然而,在Create
方法中,我不知道该怎么做才能避免这个问题
我可以将get
字段放在ViewModel
中,但这会在我的索引和详细信息视图等上产生大量额外的工作。我宁愿修改Create
方法,或者找出如何忽略Create
方法上的get
。而不是使用Any()
(当SecondaryGuests
为null
时会出现错误),只需检查null
和Count()
:
哎呀!这一次太复杂了,除了最基本的以外,尝试了各种各样的东西。
var guestToUpdate = await _context.Guests
.Include(g => g.SecondaryGuests)
.SingleOrDefaultAsync(g => g.ID == id);
return (GuestOf == null && SecondaryGuests != null && SecondaryGuests.Count() > 0 ?
RSVP + SecondaryGuests.Count() : 0);