2016-12-24 14 views
0

私は2つのテーブルEntity FrameworkのNULLポインタ参照の例外

との関係まずテーブルがあります。ユーザー

Id | Name | 

第二表:パッケージ

Id | UserSenderId | UserReceiverId 

私はEntity Frameworkのを使用します.Net Framework 3.5と私が持っている問題は、Entity Frameworkが2つのref数字はUserReference1UserReferenceですが、UserReference1は常にnullです。私はこのようなUserテーブルが含まれていない場合:

db.Packages.Include("User") 

はその後 UserReferenceもnullです。

私は実際にこの問題のアイデアを使い果たしました。同じプライマリキーを指す複数の外部キーを使用すると問題はありますか?

EDIT 1:

Package部分クラス内のユーザー参照:

[global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("Tema4Model", "FK_Package_User_Receiver", "User")] 
[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
[global::System.Xml.Serialization.XmlIgnoreAttribute()] 
[global::System.Xml.Serialization.SoapIgnoreAttribute()] 
[global::System.Runtime.Serialization.DataMemberAttribute()] 
public User User 
{ 
    get 
    { 
     return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<User>("Tema4Model.FK_Package_User_Receiver", "User").Value; 
    } 
    set 
    { 
     ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<User>("Tema4Model.FK_Package_User_Receiver", "User").Value = value; 
    } 
} 

/// <summary> 
/// There are no comments for User in the schema. 
/// </summary> 
[global::System.ComponentModel.BrowsableAttribute(false)] 
[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
[global::System.Runtime.Serialization.DataMemberAttribute()] 
public global::System.Data.Objects.DataClasses.EntityReference<User> UserReference 
{ 
    get 
    { 
     return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<User>("Tema4Model.FK_Package_User_Receiver", "User"); 
    } 
    set 
    { 
     if ((value != null)) 
     { 
      ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.InitializeRelatedReference<User>("Tema4Model.FK_Package_User_Receiver", "User", value); 
     } 
    } 
} 

/// <summary> 
/// There are no comments for User1 in the schema. 
/// </summary> 
[global::System.Data.Objects.DataClasses.EdmRelationshipNavigationPropertyAttribute("Tema4Model", "FK_Package_User_Sender", "User")] 
[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
[global::System.Xml.Serialization.XmlIgnoreAttribute()] 
[global::System.Xml.Serialization.SoapIgnoreAttribute()] 
[global::System.Runtime.Serialization.DataMemberAttribute()] 
public User User1 
{ 
    get 
    { 
     return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<User>("Tema4Model.FK_Package_User_Sender", "User").Value; 
    } 
    set 
    { 
     ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<User>("Tema4Model.FK_Package_User_Sender", "User").Value = value; 
    } 
} 

/// <summary> 
/// There are no comments for User1 in the schema. 
/// </summary> 
[global::System.ComponentModel.BrowsableAttribute(false)] 
[global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")] 
[global::System.Runtime.Serialization.DataMemberAttribute()] 
public global::System.Data.Objects.DataClasses.EntityReference<User> User1Reference 
{ 
    get 
    { 
     return ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.GetRelatedReference<User>("Tema4Model.FK_Package_User_Sender", "User"); 
    } 
    set 
    { 
     if ((value != null)) 
     { 
      ((global::System.Data.Objects.DataClasses.IEntityWithRelationships)(this)).RelationshipManager.InitializeRelatedReference<User>("Tema4Model.FK_Package_User_Sender", "User", value); 
     } 
    } 
} 

すべてのヘルプは高く評価され、感謝!

+0

可能な重複してください[とNullReferenceExceptionで何をして、そして私はそれをどのように修正すればよいです?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-どうすればいいのですか) – jdphenix

+0

Entity Frameworkによって生成された、またはコードファーストアプローチの場合には自分で書かれた 'Package'エンティティと' User'エンティティのC#コードを表示してください。 –

+0

@jdphenix私はその質問への答えを読んだが、それは私の問題ではない、私の問題は、Entity Framework IDが上記の2つのうちの1つの外部キーの参照を作成しているということです – sixfeet

答えて

1

db.Packages.Include("User").Include("User1")

+0

それは動作していますが、私はなぜ理解できないのですか、説明してください。 – sixfeet

+0

'Include'がすべてのナビゲーションプロパティを' User'型で読み込むと仮定していると思います。しかし、 'Include'文字列パラメータは、型のすべてのプロパティではなく、具象プロパティを意味します。インクルードしようとしているナビゲーションプロパティごとに 'Include'を呼び出す必要があります。 –

+0

おっと、ありがとう! – sixfeet