标记为关联的属性不包含在LINQ Select中

时间:2013-09-16 23:20:46

标签: c# .net linq windows-phone-8 entity

我是LINQ的新手,所以我一直在关注一些教程和官方文档,例如如何:在开发者网络上映射数据库关系。

我正在执行此操作:

1)有两个类Locality和Region,这个“表”之间有一对多关系,因此一个Region有多个Localities。我像这样映射了这个关联:

区:

private EntitySet<City> _cities = new EntitySet<City>();

[Association(Storage = "_cities", ThisKey = "RegionId", OtherKey = "RegionId")]
public EntitySet<City> Cities
{
    get { return _cities; }
    set { _cities.Assign(value); }
} 

该地区还有两个字段RegionId和Name。 City也有两个字段:CityId,Name(当然在RegionId外键旁边)。

现在我填充数据库。所以我可以使用如下查询选择所有城市:

var city = from City cities in db.cities
           select cities;

我可以看到属于City Entity的所有属性。但是当我执行此查询时:

var regiones = from Region region in db.regions
               select region;

我只能访问RegionId,Name,因为Cities EntitySet始终为空。我现在不知道我做错了什么,所以我希望你们中的一些人能帮助我。

2 个答案:

答案 0 :(得分:0)

您确定在您的上下文中启用了LazyLoading。 如果没有,您可以打开它,或者您可以使用db.regions.Include(&#34; Cities&#34;)来显式加载城市。

答案 1 :(得分:0)

很抱歉浪费你的时间,我终于找到了我的错误,我用标志IsDbGenerated = true定义了Region的主键,但是我正在为City中的外键发送一个准备好的值,所以关系破了,我修复了区域主键和Voila。