Rumah  >  Soal Jawab  >  teks badan

Apabila menggunakan EF Core untuk menanyakan MySQL dalam C#, nama lajur kunci utama adalah tidak betul

<p>Saya sedang belajar bagaimana untuk menanyakan pangkalan data Mysql dalam C#, tetapi saya mendapat ralat mengatakan terdapat lajur tidak sah dalam senarai lajur, tetapi saya tidak dapat mengetahui di mana nama lajur itu (ToDoId) datang daripada. </p> <p>Hanya terdapat dua lajur dalam jadual (model ditunjukkan di bawah), dan kunci utama dalam mysql ialah <code>Id</code>. Dari mana datangnya <code>ToDoId</code> dan bagaimana saya memaksanya untuk menjadi <code>Id</code>? </p> <p>Saya telah melihat semua kod sampel (dari sini) dan saya percaya saya telah mengemas kini segala-galanya untuk menambah jadual baharu saya dengan betul. </p> <p>Ini model saya:</p> <pre class="brush:php;toolbar:false;">ToDo kelas awam { Id Panduan awam { dapatkan; rentetan awam ToDoName { dapatkan; public ICollection<ToDos { dapatkan; publicToDo() { ToDos = HashSet baharu<ToDo>(); } }</pre> <p>Di sinilah saya mendapat ralat - dalam pertanyaan: </p> <pre class="brush:php;toolbar:false;">kelas awam ToDoRepository : IToDoRepository { peribadi baca sahaja DatabaseContext _context; ToDoRepository awam(DatabaseContext context) { _konteks = konteks; } // _context.ToDo berikut ditakrifkan sebagai: DbSet maya awam<ToDo> awam IQueryable<ToDo> _context.ToDo.AsQueryable(); // Ralat berlaku di sini... public IReadOnlyList<ToDo> Senarai => .ToList(); }</pre> <p>Mesej ralat: </p> <blockquote> <p>MySqlConnector.MySqlException: Lajur 't.ToDoId' tidak diketahui dalam 'senarai medan'</p> </blockquote><p><br /></p>
P粉736935587P粉736935587453 hari yang lalu568

membalas semua(1)saya akan balas

  • P粉610028841

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

    Pastikan ia mudah, gunakan EF konvensyen, dan namakan semula kunci utama anda kepada:

    classNameID, jadi dalam kes anda:

    public Guid ToDoId { get; set; }

    Atau gunakan atribut Kunci seperti yang diterangkan di sini:

    [Key]
    public Guid Id { get; set; }

    Cadangan mesra untuk menamakan kelas anda Todo

    balas
    0
  • Batalbalas