2017-05-15 11 views
0

ASP.NETコアとEFコアを使用して新しいアプリケーションを開発しています。最新の安定版リリース(v1.1.2)です。ナビゲーションプロパティを使用して関連するデータを読み込むことはできません。Entity Frameworkコアで関連データが読み込まれない

私は、EFコアで遅延ロードがサポートされていないことを認識していますが、私が見ている主題のすべてのポストは、.Include()を使用して明示的に関連するデータをロードできるはずであることを示しています。しかし、これは私たちのために働いていないし、関連するエンティティは、コードでロードするときに常にnullです。

「交換」と「貿易」という2つのエンティティがあります。 「Exchangeが」は、「展覧会」への外部キーを持っており、要求と別のと呼ばれるオファーと呼ばれる仮想の取引が含まれています: -

[Table("Exchange")] 
public partial class Exchange : BaseEntity 
{ 

    public string Pending { get; set; } 

    [Display(Name = "Exchange Date"), DataType(DataType.Date)] 
    public DateTime DateOfExchange { get; set; } 
    public decimal EstimatedHours { get; set; } 
    public decimal ActualHours { get; set; } 
    public string Description { get; set; } 
    public string FollowUp { get; set; } 
    public string Status { get; set; } 
    [ForeignKey("User")] 
    [Required] 
    public int Broker_Fk { get; set; } 
    public virtual User Broker { get; set; } 
    public int Request_Fk { get; set; } 
    public virtual Trade Request { get; set; } 
    public int Offer_Fk { get; set; } 
    public virtual Trade Offer { get; set; } 

私は関連を持って知っているのExchange」をインスタンス化するビューモデルを持っています「リクエスト」: -

_vm.Exchanges = _context.Exchange.Include(i => i.Request).Where(t => t.Request.User_Fk == user.Id || t.Offer.User_Fk == user.Id).ToList(); 

これは私がに渡すとビューモデルにレンダリングしています交換を返します -

@foreach (var item in Model.Exchanges) 
{ 
    <span>@item.Request.Name</span> <br /> 
} 

問題にもかかわらず、@ item.Requestがnullであるということです私は元を持っているExchangeをロードするときに明示的にインクルードします。 Exchangeの他のプロパティの1つに、その外部キーが設定されているため、関連するエンティティが実際に存在することがわかります。

私には何が欠けていますか?私が投稿したすべての例は、私がやったことがうまくいくはずであることを示唆しています。

答えて

0

あなたのモデル属性を台無しにされています

[Table("Exchange")] 
public partial class Exchange : BaseEntity 
{ 

    //... 

    [ForeignKey("Broker")] 
    [Required] 
    public int Broker_Fk { get; set; } 
    public virtual User Broker { get; set; } 

    [ForeignKey("Request")] 
    public int Request_Fk { get; set; } 
    public virtual Trade Request { get; set; } 

    //... 
} 
+0

あなたにサムをありがとう - はい、あなたが正しいです。 ForeignKeyデコレーションを追加すると問題が解決しました。 – Mikew

関連する問題