In ASP.NET MVC 4 project, I have a model for join (with payload):
public class LeagueMember
{
[Key, Column(Order = 0)]
public int MemberId { get; set; }
[Key, Column(Order = 1)]
public int LeagueId { get; set; }
public bool? IsActive { get; set; }
[Required]
public virtual League League { get; set; }
[Required]
public virtual Member Member { get; set; }
}
I am trying to pull all the active members of the league. So, in League model, I created a property like this:
public virtual ICollection<LeagueMember> LeagueMembers { get; set; }
public IEnumerable<Member> GetActiveMembers
{
get
{
return LeagueMembers.Select(a => a.IsActive == true ? a.Member : null);
}
}
But it looks like it returns a collection with size equals to that of all Members
(with null values for the inactive members).
Is there a better way to apply filter in anonymous method to avoid nulls?
Just remove your ternary condition within Select Method.
public IEnumerable<Member> GetActiveMembers
{
get
{
return from activeMember in LeagueMembers
where activeMember.IsActive == true
select activeMember.Member;
//return LeagueMembers.Select(a => a.IsActive == true);
}
}