2016-12-24 1 views
0

나는 두 테이블엔티티 프레임 워크 널 포인터 참조 예외

사이의 관계를

첫 번째 테이블 : 사용자

Id | Name | 

두 번째 테이블 : 패키지

Id | UserSenderId | UserReceiverId 

내가 엔티티 프레임 워크를 사용 닷넷 프레임 워크 3.5와 내가 가진 문제는 엔티티 프레임 워크가 두 개의 ref 숫자가 UserReference1이고 UserReference이지만 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- how-do-i-fix-it) – jdphenix

+0

Entity Framework에서 생성되었거나 코드 우선 접근 방식의 경우 사용자가 직접 작성한'Package' 및'User' 엔티티에 대한 C# 코드를 보여주십시오. –

+0

@jdphenix 내가 그 질문에 대한 답변을 읽었습니다하지만 내가 가지고있는 문제가 아니다, 내 문제는 엔티티 프레임 워크의 ID가 많은 It'a – sixfeet

답변

1

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

+0

그것은 작동하지만 왜, 왜 설명 할 수 없습니까? – sixfeet

+0

'Include'가 모든 탐색 속성을'User' 유형으로로드한다고 가정합니다. 그러나 'Include' 문자열 매개 변수는 해당 유형의 모든 속성이 아닌 구체적인 속성을 의미합니다. 포함시키려는 각 탐색 속성에 대해'Include'를 호출해야합니다. –

+0

우우, 고마워, 고마워! – sixfeet