ホームページ  >  に質問  >  本文

EF Core を使用して C# で MySQL にクエリを実行すると、主キーの列名が正しくありません

<p>C# で MySQL データベースにクエリを実行する方法を学んでいますが、列リストに無効な列があるというエラーが表示されますが、その列名 (ToDoId) がどこにあるのかわかりませんから。 </p> <p>テーブル (以下に示すモデル) には列が 2 つだけあり、mysql の主キーは <code>Id</code> です。その <code>ToDoId</code> はどこから来たのでしょうか?また、それを強制的に <code>Id</code> にするにはどうすればよいですか? </p> <p>すべてのサンプル コード (ここから) を確認し、新しいテーブルを正しく追加するためにすべてを更新したと思います。 </p> <p>これは私のモデルです:</p> <pre class="brush:php;toolbar:false;">パブリック クラス ToDo { パブリック Guid ID { 取得; 設定; } public string ToDoName { get; set; } = null!; public ICollection<ToDo> ToDos { get; set; } publicToDo() { ToDo = 新しい HashSet<ToDo>(); } }</pre> <p>クエリ内で、ここでエラーが発生します: </p> <pre class="brush:php;toolbar:false;">パブリック クラス ToDoRepository : IToDoRepository { プライベート読み取り専用 DatabaseContext _context; public ToDoRepository(DatabaseContext コンテキスト) { _context = コンテキスト; } // 次の _context.ToDo は次のように定義されます: public virtual DbSet<ToDo> ToDo { get; set; } = null!; public IQueryable<ToDo> Query => _context.ToDo.AsQueryable(); // ここでエラーが発生しました... public IReadOnlyList<ToDo> リスト => クエリ .ToList(); }</pre> <p>エラーメッセージ: </p> <ブロック引用> <p>MySqlConnector.MySqlException: 'フィールド リスト' の不明な列 't.ToDoId'</p> </blockquote><p><br /></p>
P粉736935587P粉736935587405日前525

全員に返信(1)返信します

  • P粉610028841

    P粉6100288412023-08-18 09:49:51

    シンプルにして、EF conventions を使用し、主キーの名前を

    に変更します。

    classNameID、つまりあなたの場合:

    リーリー

    または、ここで説明されているように Key 属性を使用します:

    リーリー

    クラスに名前を付けるためのフレンドリーな提案 Todo

    返事
    0
  • キャンセル返事