title: Class with multiple List Properties of same type but with different restrictions
body: <p>Here's my problem: I have a class that have 2 list properties of the same class type (but with some different restriction as on how to be filled), let's say: </p>
  
  <pre><code>public class Team 
  {
      [Key]
      public int IDTeam { get; set; }
  
      public string TeamName { get; set; }
  
      public List&lt;Programmer&gt; Members { get; set; }
  
      public List&lt;Programmer&gt; Leaders { get; set; }
  
      public LoadLists(MyProjectDBContext db) 
      {
          this.Members = db.Programmers.Where(p =&gt; p.IDTeam = this.IDTeam 
                   &amp;&amp; (p.Experience == "" || p.Experience == null)).ToList();
  
          this.Leaders = db.Programmers.Where(p =&gt; p.IDTeam = this.IDTeam 
                   &amp;&amp; (p.Experience != null &amp;&amp; p.Experience != "")).ToList();
      }
  }
  
  public class Programmer 
  {
      [Key]
      public int IDProgrammer { get; set; }
  
      [ForeignKey("Team")]
      public int IDTeam { get; set; }
      public virtual Team Team { get; set; }
  
      public string Name { get; set; }
  
      public string Experience { get; set; }
  }
  </code></pre>
  
  <p>At some point, I need to take a list of Teams, with it's members and leaders, and for this I would assume something like:</p>
  
  <pre><code>return db.Teams
      .Include(m =&gt; m.Members.Where(p =&gt; p.Experience == "" || p.Experience == null)
      .Include(l =&gt; l.Leaders.Where(p =&gt; p.Experience != null &amp;&amp; p.Experience != "")
      .OrderBy(t =&gt; t.TeamName)
      .ToList();
  </code></pre>
  
  <p>And, of course, in this case I would be assuming it wrong (cause it's not working at all).
  Any ideas on how to achieve that?</p>
  
  <p>EDIT: To clarify a bit more, the 2 list properties of the team class should be filled according to:</p>
  
  <p>1 - Members attribute - Should include all related proggramers with no experience (proggramer.Experience == null or "");</p>
  
  <p>2 - Leaders attribute - Should include all related proggramers with any experience (programmer.Experiente != null nor "");</p>
  
  <p>EDIT 2: Here's the MyProjectDbContext declaration:</p>
  
  <pre><code>public class MyProjectDBContext : DbContext
  {
      public DbSet&lt;Team&gt; Teams { get; set; }
      public DbSet&lt;Programmer&gt; Programmers { get; set; }
  }
  </code></pre>