我的模型有这个字段:
public ICollection<Guest> SecondaryGuests { get; set; }
并且还有get
来计算结果:
public int TotalRSVP
{
get
{
return (GuestOf == null &&
SecondaryGuests.Any() ? RSVP + SecondaryGuests.Count() : 0);
}
}
当我使用Create
和Edit
方法时,除了抛出异常外,这工作得很好:
SecondaryGuests不能为空
我可以通过Edit
添加include
来解决此问题:
var guestToUpdate = await _context.Guests
.Include(g => g.SecondaryGuests)
.SingleOrDefaultAsync(g => g.ID == id);
然而,在Create
方法中,我不知道如何解决这个问题。
我可以将get
字段放在ViewModel
中,但这会对我的索引和详细信息视图等产生大量额外的工作。我宁愿修改我的Create
方法或数字如何忽略get
方法上的Create
。
答案 0 :(得分:1)
而不是使用Any()
(SecondaryGuests
为null
时会出现错误),只需检查null
和Count()
:
return (GuestOf == null && SecondaryGuests != null && SecondaryGuests.Count() > 0 ?
RSVP + SecondaryGuests.Count() : 0);