ここに私の問題があります:同じクラスタイプの2つのリストプロパティを持つクラスがあります(ただし、入力方法に関していくつかの異なる制限があります)、次のようにしましょう:
public class Team
{
[Key]
public int IDTeam { get; set; }
public string TeamName { get; set; }
public List<Programmer> Members { get; set; }
public List<Programmer> Leaders { get; set; }
public LoadLists(MyProjectDBContext db)
{
this.Members = db.Programmers.Where(p => p.IDTeam = this.IDTeam
&& (p.Experience == "" || p.Experience == null)).ToList();
this.Leaders = db.Programmers.Where(p => p.IDTeam = this.IDTeam
&& (p.Experience != null && 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; }
}
ある時点で、メンバーとリーダーを含むチームのリストを取得する必要があります。このために、次のようなものを想定します。
return db.Teams
.Include(m => m.Members.Where(p => p.Experience == "" || p.Experience == null)
.Include(l => l.Leaders.Where(p => p.Experience != null && p.Experience != "")
.OrderBy(t => t.TeamName)
.ToList();
そしてもちろん、この場合、私はそれが間違っていると仮定します (まったく機能していないため)。それを達成する方法についてのアイデアはありますか?
編集: もう少し明確にするために、チーム クラスの 2 つのリスト プロパティは次のように入力する必要があります。
1 - メンバー属性 - 経験のない関連するすべてのプログラマーを含める必要があります (proggramer.Experience == null または "");
2 - Leaders 属性 - 関連するすべてのプログラマー (programmer.Experiente != null または "") を含める必要があります。
編集 2: MyProjectDbContext 宣言は次のとおりです。
public class MyProjectDBContext : DbContext
{
public DbSet<Team> Teams { get; set; }
public DbSet<Programmer> Programmers { get; set; }
}