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つに、その外部キーが設定されているため、関連するエンティティが実際に存在することがわかります。
私には何が欠けていますか?私が投稿したすべての例は、私がやったことがうまくいくはずであることを示唆しています。
あなたにサムをありがとう - はい、あなたが正しいです。 ForeignKeyデコレーションを追加すると問題が解決しました。 – Mikew