Я пытаюсь использовать Linq To Sql и столкнулся с проблемой при попытке выполнить следующий запрос в моем веб-приложении:
var query = from t in teamsTable
where t.SeasonTeams.All(x => x.SeasonID != 4)
select t;
return query.ToList();
В этот момент я получаю следующую ошибку:
Доступ участника 'Int32 SeasonID' к параметру 'DomainModel.Entities.SeasonTeam' недопустим для типа 'System.Collections.Generic.IList`1 [DomainModel.Entities.SeasonTeam].
Используя LINQPad, работает точно такой же запрос.Я включил классы с Linq Mappings ниже.Я был бы очень признателен за помощь в решении проблемы и объяснении ее причины.
[Table(Name = "Teams")]
public class Team
{
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int TeamID { get; set; }
[Column]
public string Name { get; set; }
[Association(OtherKey = "TeamID")]
private EntitySet<Player> _players = new EntitySet<Player>();
public IList<Player> TeamPlayers { get { return _players.ToList(); } }
[Association(OtherKey = "HomeTeamID")]
private EntitySet<Fixture> _homeFixtures = new EntitySet<Fixture>();
public IList<Fixture> HomeFixtures { get { return _homeFixtures.ToList(); } }
[Association(OtherKey = "AwayTeamID")]
private EntitySet<Fixture> _awayFixtures = new EntitySet<Fixture>();
public IList<Fixture> AwayFixtures { get { return _awayFixtures.ToList(); } }
[Association(OtherKey="TeamID")]
private EntitySet<SeasonTeam> _seasonteams = new EntitySet<SeasonTeam>();
public IList<SeasonTeam> SeasonTeams { get { return _seasonteams.ToList(); } }
}
[Table(Name = "Seasons")]
public class Season
{
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int SeasonID { get; set; }
[Column]
public DateTime StartDate { get; set; }
[Column]
public DateTime EndDate { get; set; }
[Column]
public int LeagueID { get; set; }
[System.Data.Linq.Mapping.Association(OtherKey = "SeasonID")]
private EntitySet<Fixture> _fixtures = new EntitySet<Fixture>();
public IList<Fixture> Fixtures { get { return _fixtures.ToList().AsReadOnly(); } }
[System.Data.Linq.Mapping.Association(OtherKey = "SeasonID")]
private EntitySet<SeasonTeam> _seasonteams = new EntitySet<SeasonTeam>();
public IList<SeasonTeam> SeasonTeams { get { return _seasonteams.ToList().AsReadOnly(); } }
internal EntityRef<League> _league;
[System.Data.Linq.Mapping.Association(ThisKey = "LeagueID", Storage = "_league")]
public League League
{
get { return _league.Entity; }
internal set { _league.Entity = value; LeagueID = value.LeagueID; }
}
}
[Table(Name="SeasonTeams")]
public class SeasonTeam
{
[Column(IsDbGenerated = true, IsPrimaryKey = true, AutoSync = AutoSync.OnInsert)]
public int SeasonTeamID { get; set; }
[Column]
public int TeamID { get; set; }
[Column]
public int SeasonID { get; set; }
internal EntityRef<Team> _team;
[Association(ThisKey = "TeamID", Storage = "_team")]
public Team Team
{
get { return _team.Entity; }
set { _team.Entity = value; TeamID = value.TeamID; }
}
internal EntityRef<Season> _season;
[Association(ThisKey = "SeasonID", Storage = "_season")]
public Season Season
{
get { return _season.Entity; }
set { _season.Entity = value; SeasonID = value.SeasonID; }
}
}