C# 为什么我的ICollection总是空的?

C# 为什么我的ICollection总是空的?,c#,linq,windows-phone-7,icollection,C#,Linq,Windows Phone 7,Icollection,我正试图找到一个foreach,但我的程序从未进入,因为我的ICollection Coletores总是空的,即使我在那里放了很多东西 我想进入的代码总是空的,我想进入第二个foreach: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { if (NavigationContext.QueryString.TryGetValue("e

我正试图找到一个foreach,但我的程序从未进入,因为我的ICollection Coletores总是空的,即使我在那里放了很多东西

我想进入的代码总是空的,我想进入第二个foreach:

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        if (NavigationContext.QueryString.TryGetValue("email", out email))
        {
            //MessageBox.Show(email);
            List<HyperlinkButton> listaLinks = new List<HyperlinkButton>();

            AppDataContext db = new AppDataContext();

            int i = 0;

            HyperlinkButton aux = new HyperlinkButton();

            foreach (Pessoa pessoa in db.Pessoas)
            {
                if (pessoa.Email == email)
                {
                    foreach (Coletor coletor in pessoa.Coletores)
                    {
                        aux.Content = "Coletor " + (i + 1).ToString();
                        aux.FontSize = 24;
                        aux.NavigateUri = new Uri("/OcorrenciasPage.xaml?coletorId=" + coletor.Id.ToString(), UriKind.RelativeOrAbsolute);
                        listaLinks.Add(aux);
                        i++;
                    }
                }
            }

            ListBox coletores = new ListBox();
            coletores.ItemsSource = listaLinks;
            stcList.Children.Add(coletores);
        }
        base.OnNavigatedTo(e);
    }
现在,我的Pessoa类:


Pessoa类上的Coletores属性看起来不错。还有一处Pessoacoloteries地产。你确定这两者之间没有混淆吗?尤其是使用智能感知,人们可能会点错或贴错标签

您是否在实际添加第二个代码段的行上添加了断点?也许东西被添加到了错误的集合中


干杯,B.

我不认为这是一个混乱,因为我的Pessoacletor类只包含与Pessoa和Coletor类的1:M关系。是的,我在那一行上加了一个断点,它加对了,两个ICollection计数都增加了,但是当它到达我的第一个foreach时,我的ICollection变为空,计数变为0。
        if (txtLat.Text != "" && txtLong.Text != "" && rdNorte.IsChecked == true || rdSul.IsChecked == true && rdLeste.IsChecked == true || rdOeste.IsChecked == true)
        {
            foreach (var pessoa in db.Pessoas)
            {
                if (pessoa.Email == email)
                {
                    pessoa.Coletores.Add(coletor);
                }
            }

            db.Coletores.InsertOnSubmit(coletor);
            db.SubmitChanges();

            NavigationService.Navigate(new Uri("/ColetoresPage.xaml?email=" + email, UriKind.RelativeOrAbsolute));
        }
public class Pessoa : INotifyPropertyChanged
{
    private int _id;
    [Column(IsDbGenerated = true, IsPrimaryKey = true)]
    public int Id { 
        get { return _id;}
        set { _id = value;
        OnPropertyChanged("Id");
        }
    }

    private string _nome;
    [Column]
    public string Nome
    {
        get { return _nome; }
        set { _nome = value;
        OnPropertyChanged("Nome");
        }
    }

    private string _email;
    [Column]
    public string Email
    {
        get { return _email; }
        set { _email = value;
        OnPropertyChanged("Email");
        }
    }

    private string _senha;
    [Column]
    public string Senha { get { return _senha; }
        set { _senha = value;
        OnPropertyChanged("Senha");
        }
    }

    private string _profissao;
    [Column]
    public string Profissao { get { return _profissao; }
        set { _profissao = value;
        OnPropertyChanged("Profissao");
        }
    }

    private int _idade;
    [Column]
    public int Idade { get { return _idade; }
        set { _idade = value;
        OnPropertyChanged("Idade");
        }
    }

    private string _endereco;
    [Column]
    public string Endereco { get { return _endereco; }
        set { _endereco = value;
        OnPropertyChanged("Endereco");
        }
    }

    private string _cidade;
    [Column]
    public string Cidade { get { return _cidade; }
        set { _cidade = value;
        OnPropertyChanged("Cidade");
        }
    }

    private string _estado;
    [Column]
    public string Estado { get { return _estado; }
        set { _estado = value;
        OnPropertyChanged("Estado");
        }
    }

    private EntitySet<Coletor> _coletores = new EntitySet<Coletor>();

    [Association(Name = "FK_Coletores_PessoaColetores", Storage = "_coletores", ThisKey = "Id", OtherKey = "pessoaId")]
    public ICollection<Coletor> Coletores
    {
        get { return _coletores; }
        set { _coletores.Assign(value); }
    }

    private EntitySet<PessoaColetor> _pessoaColetores = new EntitySet<PessoaColetor>();

    [Association(Name = "FK_PessoaColetores_Pessoas", Storage = "_pessoaColetores", OtherKey = "pessoaId", ThisKey = "Id")]
    private ICollection<PessoaColetor> PessoaColetores
    {
        get { return _pessoaColetores; }
        set { _pessoaColetores.Assign(value); }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string name)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(name));
        }
    }
}