标记为“关联”的属性不包括在 LINQ 选择中
本文关键字:不包括 LINQ 选择 属性 记为 关联 | 更新日期: 2023-09-27 18:31:44
我是 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 中的外键发送准备好的值,所以关系被打破了,我修复了区域主键,瞧。