我有三个班级:
课程是:
public class Country
{
public Country()
{
Districts = new HashSet<District>();
}
public string Name { get; set; }
public virtual ICollection<District> Districts { get; private set; }
}
public class District
{
public District()
{
Provinces = new HashSet<Province>();
}
public string Name { get; set; }
public virtual ICollection<Province> Provinces { get; private set; }
}
public class Province
{
public string Name { get; set; }
}
首先,我想提一下我在MVF中使用MVVM。所以,在我的ViewModel中,我有:
Countries = dbContext
.Countries
.Include(c => c.Districts)
.ThenInclude(p => p.Provinces)
.ToList();
然后,在我的视图中,我尝试阅读区和省中的名称字段。不幸的是,我无法成功。只显示国家/地区中的名称字段。 然后我尝试使用调试模式检查 ViewModel 中的国家,我可以看到整个数据都可用。
所以,我在 ViewModel 中添加了此代码,只是为了检查:
string dd = "";
foreach (var country in Countries)
{
dd += country.Name + " ";
dd += country.Districts.Name + " ";
dd += country.Districts.Provinces.Name + " ";
dd += Environment.NewLine;
}
MessageBox.Show(dd);
我可以阅读 country.Name ,但我无法阅读其余内容。甚至。我收到错误,他们找不到!。
如何阅读这些字段?
答案 0 :(得分:1)
感谢@Ivan Stone的帮助。这是我需要的版本:
string dd = "";
foreach (var country in Countries)
{
dd += country.Name + " ";
foreach (var district in country.Districts)
{
dd += district.Name + " ";
foreach (var province in district.Provinces)
{
dd += province.Name + " ";
}
}
dd += Environment.NewLine;
}
MessageBox.Show(dd);