2

データベースに PK/FK 関係 (int) を持つテーブルがあり、それらが Entity Framework デザイナーによってモデル化されている場合、すべてが本来あるべきように見えます。以下のコードを書くことができ、すべてがうまくいくように見えますが、コードを実行すると、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

Entity Framework は、指示しない限り、関連するエンティティを読み込みません。関連エンティティにアクセスするには、それらを明示的に 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 に答える