2

当我的数据库中有具有 PK/FK 关系 (int) 的表时,并且当它们由实体框架设计器建模时,一切看起来都应该如此。我可以编写下面的代码,一切似乎也可以正常工作,但是当我运行代码时,我在 project.Status.StatusName 上收到错误,说对象引用未设置为对象的实例。我想我的印象是,当您填充父实体时,框架填充了关联实体。

    Dim db As New MyDbModel.MyDbEntities()

    Dim project As MyDbModel.Project = (From p In db.Project Where p.ProjectID = 1).First

    Response.Write(project.ProjectName)        
    Response.Write(project.Status.StatusName)
4

2 回答 2

5

尝试使用 Include(RelationshipName)

Dim db As New MyDbModel.MyDbEntities()    
Dim project As MyDbModel.Project = (From p In db.Project.Include("Status") Where p.ProjectID = 1).First    
Response.Write(project.ProjectName)            
Response.Write(project.Status.StatusName)
于 2008-12-21T04:41:04.263 回答
3

除非您告诉实体框架,否则实体框架不会加载相关实体。为了访问相关实体,您需要明确地 Load() 或使用 Include()。这是一个简短的示例。

http://blogs.msdn.com/bethmassi/archive/2008/12/10/master-details-with-entity-framework-explicit-load.aspx

于 2008-12-21T04:43:05.927 回答