相关 ICollection 实体不能为空



我的模型有这个字段:

public ICollection<Guest> SecondaryGuests { get; set; }

它还具有以下get来计算结果:

public int TotalRSVP
{
get
{
return (GuestOf == null && 
SecondaryGuests.Any() ? RSVP + SecondaryGuests.Count() : 0);
}
}

这很好用,除非我使用CreateEdit方法,抛出异常:

次要来宾不能为空

我能够通过添加一个includeEdit方法上解决此问题:

var guestToUpdate = await _context.Guests
.Include(g => g.SecondaryGuests)
.SingleOrDefaultAsync(g => g.ID == id);

但是,在Create方法上,我不确定该怎么做才能解决这个问题。

我可以将get字段放在ViewModel中,但这在我的索引和详细信息视图等方面产生了大量额外的工作。我宁愿修改我的Create方法或弄清楚如何忽略Create方法上的get

不要使用Any()(当SecondaryGuestsnull时会给出该错误),只需检查nullCount()

return (GuestOf == null && SecondaryGuests != null && SecondaryGuests.Count() > 0 ?
RSVP + SecondaryGuests.Count() : 0);

最新更新