.NET Core - エンティティ フレームワーク - FindAsync が関連テーブルを返さない

okwaves2024-01-25  8

(これに対する答えは見つかりましたが、どれも私のコードと互換性がありません)

オブジェクトの savind が機能し、FK に基づいて関連テーブルが設定されます。
_context.Partners.Add(partnerCreation.Partner);
await _context.SaveChangesAsync();
ただし、メインテーブルを取得すると、そのテーブルのみが返され、リンクされたテーブルは返されません
var partner = await _context.Partners.FindAsync(id);

私のモデルはそのように定義されています:

public class Partner
{
    public int? Id { get; set; }
    ...
    public User ModificationUser { get; set; }
    public RetributionPlan retributionPlan { get; set; }
}

ModificationUser と retributionPlan も取得されることを期待します

ご協力いただきありがとうございます



------------------------

include ステートメントがありません

var partner = await _context.Partners.Include(p => p.ModificationUser).Include(p => p.retributionPlan).FirstOrDefaultAsync(p => p.Id == id);

ネストされたフィールドが必要な場合は、ThenInclude を使用してください

3

はい!!!ネストされたフィールドとはどういう意味ですか?これまでのところ、私のオブジェクトは存在し、メインオブジェクトに設定されています。

– phil123456

2020 年 9 月 4 日 7:08

たとえば、User にオブジェクトがある場合 (それを Address と呼びます)、アドレス オブジェクトを含めるには次のような操作を行う必要があります: var Partner = await _context.Partners.Include(p => p .ModificationUser).ThenInclude(m => m.Address).Include(p =>p.retributionPlan).FirstOrDefaultAsync(p =>p.Id == id);

– スーン・モンラッド

2020 年 9 月 8 日 8:19

これについて手伝ってもらえますか? stackoverflow.com/questions/63790062/…

– phil123456

2020 年 9 月 8 日 8:47



------------------------

ID をプロパティとして追加することも好みます。 したがって、クラスは次のようになります。

public class Partner
{
    public int? Id { get; set; }
    ...
    public User ModificationUser { get; set; }
    public int ModificationUserId { get; set; }
    public int retributionPlanId { get; set; }
    public RetributionPlan retributionPlan { get; set; }
}

どちらでも呼び出すことができます

await _context.Partners.FirstOrDefaultAsync(p => p.Id == id);

または

await _context.Partners.FirstOrDefaultAsync(p=> p.Id == id).Include(x=>x.ModificationUser);

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。