0

asp.net core 2.0 및 EF core 2.0을 사용하고 있습니다.EF Core 2.0 관계 (Null Comig)

나는 DbSet에 대해 3 개의 클래스가 있습니다.

public class Person 
    { 
     [Key] 
     public int PersonId { get; set; } 
     public string Name { get; set; } 
    } 



    public class Packet 
    { 
     [Key] 
     public int PacketId { get; set; } 
     public string Name{get;set;} 
     public int Point{get;set;} 

    } 



    public class UserPacket 
    { 
     [Key] 
     public int UserPacketId { get; set; }  
     public int ParentPersonId { get; set; } 
     public Person Parent { get; set; } 
     public int PacketId { get; set; }  
     public Packet Packet { get; set; } 
    } 

그리고

modelBuilder.Entity<UserPacket>().HasOne<Person>(a => a.Parent).WithMany().HasForeignKey(a=>a.ParentPersonId); 
      modelBuilder.Entity<UserPacket>().HasOne<Person>(a => a.Owner).WithMany().HasForeignKey(a=>a.OwnerPersonId); 
      modelBuilder.Entity<UserPacket>().HasOne<Packet>(a => a.Packet).WithMany().HasForeignKey(b=>b.PacketId); 

이 테이블에 대한 내 디자인 (자세한 내용을 포함하지 않습니다.) VAR 사람 = blabla을 .....입니다

var personPacket = _userPacketRepository.GetMany(a => a.OwnerPersonId == person.PersonId); 
      double totalPacket = 0; 
      foreach (var packet in personPacket) 
      { 
       totalPacket += packet.Packet.Point; 
      } 

내가 패킷을 선택할 수 있지만, 패킷에 대해. 패킷이 null이됩니다. 아무도 나 도와 줄 수 없어?

+0

시도는 그것을 포함하는 것은 매우 유용하다'_userPacketRepository.GetMany (A = > a.OwnerPersonId == person.PersonId) .Include (x => x.Packet); ' –

+0

@AhmedRagheb 그건 고맙습니다. EF 코어를 위해 미래가 필요한 것일까 요? 왜냐하면 내가 사용하지 않았기 때문에 Include하지만 Property (Asp.net mvc 5 및 EF 6)를 사용할 수 있습니다. –

+0

답변으로 추가 할 것입니다. 다른 사용자가 사용할 수 있도록 확인하십시오. –

답변

0

시도는 그것이

_userPacketRepository.GetMany(a => a.OwnerPersonId == person.PersonId) 
.Include(x => x.Packet); 

당신은 EF와 Github의 위키에서 자신의 로드맵과 변경 사항에 대한 자세한 내용을보실 수 있습니다 포함, 그것은 https://github.com/aspnet/EntityFrameworkCore/wiki