Maison  >  Questions et réponses  >  le corps du texte

Lors de l'utilisation d'EF Core pour interroger MySQL en C#, le nom de la colonne de clé primaire est incorrect

<p>J'apprends à interroger une base de données Mysql en C#, mais j'obtiens une erreur indiquant qu'il y a une colonne non valide dans la liste des colonnes, mais je n'arrive pas à comprendre d'où vient ce nom de colonne (ToDoId) depuis. </p> <p>Il n'y a que deux colonnes dans le tableau (modèle présenté ci-dessous) et la clé primaire dans MySQL est <code>Id</code>. D'où vient ce <code>ToDoId</code> et comment puis-je le forcer à devenir <code>Id</code> ? </p> <p>J'ai regardé tous les exemples de code (à partir d'ici) et je pense avoir tout mis à jour pour ajouter correctement ma nouvelle table. </p> <p>Voici mon modèle :</p> <pre class="brush:php;toolbar:false;">classe publique ToDo { identifiant de guide public { get ; set } chaîne publique ToDoName { get; set } = null !; public ICollection<ToDo> publicToDo() { ToDos = nouveau HashSet<ToDo>(); } }</pré> <p>C'est ici que j'obtiens l'erreur - dans la requête : </p> <pre class="brush:php;toolbar:false;">classe publique ToDoRepository : IToDoRepository { privé en lecture seule DatabaseContext _context ; public ToDoRepository (contexte DatabaseContext) { _context = contexte ; } // Le _context.ToDo suivant est défini comme : public virtual DbSet<ToDo> public IQueryable<ToDo> Query => // L'erreur s'est produite ici... public IReadOnlyList<ToDo> .Lister(); }</pré> <p>Message d'erreur : </p> <blockquote> <p>MySqlConnector.MySqlException : colonne inconnue 't.ToDoId' dans la 'liste de champs'</p> </blockquote><p><br /></p>
P粉736935587P粉736935587405 Il y a quelques jours523

répondre à tous(1)je répondrai

  • P粉610028841

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

    Restez simple, utilisez EF conventions et renommez votre clé primaire en :

    classNameID, donc dans votre cas :

    public Guid ToDoId { get; set; }

    Ou utilisez l'attribut Key comme décrit ici :

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

    Suggestion amicale de nommer votre classe Todo

    répondre
    0
  • Annulerrépondre