0

私はasp.netコア2.0とEFコア2.0を使用しています。EFコア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; 
      } 

私はパケットを選択することができますが、 packet.Packetはnullになります。誰も私を助けることができますか?それを含める

+0

は '_userPacketRepository.GetMany(=それを含めるようにしてください非常に便利です> a.OwnerPersonId == person.PersonId)。インクルード(x => x.Packet); ' –

+0

@AhmedRaghebこれはありがたいです。これはEFコアにとって将来の必要なのか、必要なのでしょうか?以前は私が使用していなかったのでインクルードするが、私はProperty(Asp.net mvc 5とEF 6)を取ることができる –

+0

私は答えとしてそれを追加します。 –

答えて

0

てみてくださいあなたがEFとそのロードマップとのGitHubのWikiからの変更の詳細を読むことができ

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

https://github.com/aspnet/EntityFrameworkCore/wiki