記事詳細


投稿日
2026年01月01日21時55分
タイトル

個別アカウント構築関連クラス

内容

コード例

Csharp
public string? UserId { get; set; } [ForeignKey("UserId")] public IdentityUser? User { get; set; }

1. UserId プロパティ

  • string?(nullable 文字列)
  • 役割: 関連するユーザーの 主キー(Id) を保持する外部キー列。
  • IdentityUser の Id プロパティ(通常は GUID 文字列)と対応します。
  • ? が付いているので、null を許容します(ユーザーが紐づかない場合もある)。

2. [ForeignKey("UserId")] 属性

  • 意味: 下の User ナビゲーションプロパティが、UserId 列を外部キーとして使うことを明示。
  • Entity Framework Core が自動的にリレーションを認識できるようにするための設定。

3. public IdentityUser? User { get; set; }

  • ナビゲーションプロパティ
    • UserId に対応する 実際のユーザー情報 を参照するためのプロパティ。
    • IdentityUser は ASP.NET Core Identity が提供するユーザーモデル。
  • ? が付いているので、関連ユーザーが存在しない場合は null になる可能性があります。

4. 関係性のイメージ

このコードは 「1人のユーザーが複数のエンティティを持つ」 という 1対多 の関係を表します。

例:

Plaintext
TodoItem ├─ UserId = "abc123" └─ User → IdentityUser(Id="abc123", UserName="taro")

✅ まとめると

  • UserId → 外部キー(ユーザーのIdを保持)
  • [ForeignKey("UserId")] → User プロパティが UserId を使うことを指定
  • User → 実際のユーザー情報(IdentityUser)を参照するためのナビゲーションプロパティ

もし希望があれば、このコードを Fluent API で書く方法 もお見せできますが、やりますか?

Powered by Froala Editor

添付画像

画像はありません
Genreのカテゴリ-名
Models
編集 | 記事一覧