标记为“关联”的属性不包括在 LINQ 选择中



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

我正在执行这个:

1)有两个类 Locality 和 Region,这个"表"之间有一个一对多的关系,所以一个区域有多个 Locality。我像这样映射关联:

地区:

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); }
} 
区域

还有另外两个字段区域 ID 和名称。城市也有两个字段:CityId,Name(当然在RegionId外键旁边)。

现在我填充数据库。因此,我能够使用如下所示的查询选择所有城市:

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

我可以看到属于城市实体的所有属性。但是当我执行此查询时:

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

我只能访问区域ID,名称,因为城市实体集总是空的。我现在不知道我做错了什么,所以我希望你们中的一些人能帮我一把。

您是否确定在上下文中启用了延迟加载。如果没有,您可以打开它,也可以使用 db.regions.Include("城市")显式加载城市。

抱歉浪费了你们的时间,伙计们,我终于发现了我的错误,我用标志 IsDbGenerated = true 定义了 Region 的主键,但我正在向 City 中的外键发送准备好的值,所以关系被打破了,我修复了区域主键,瞧。

最新更新