Entity Framework中一对多关系关联id报错

Entity Framework总是有那么一些令人无语的内置设定

比如就遇到这么一个情况,building下有多个level

则ef就会默认他们是一对多的情况,于是在对level进行增删改查时,就会找level中是否有building这个属性

这时候如果你的level中没有Building则会报以下错误

他告诉你,你的level中没有找到'BuildingDTO_Id' 属性

//

第一个解决方案是将BuildingId  改成 BuildingDTOId;

//

第二个解决方案是如下

注意红框内的名称一定要一模一样!!!!!!

//

其实第三个解决方案是,把属性变成字段即可,ef不会根据字段判断 对象和对象之间的关系的

private ObservableCollection<LevelDTO> levelDTOs = new ObservableCollection<LevelDTO>();
public ObservableCollection<LevelDTO> LevelDTOs
{
get { return levelDTOs; }
set
{
levelDTOs = value;
OnPropertyChanged();
}
}

====  变成 ===》 

public ObservableCollection<LevelDTO> LevelDTOs;

posted @ 2023-12-27 16:59  ShawBlack  阅读(9)  评论(0编辑  收藏  举报