(これに対する答えは見つかりましたが、どれも私のコードと互換性がありません)
オブジェクトの 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);