Heim  >  Fragen und Antworten  >  Hauptteil

Wenn Sie EF Core zum Abfragen von MySQL in C# verwenden, ist der Name der Primärschlüsselspalte falsch

<p>Ich lerne, wie man eine MySQL-Datenbank in C# abfragt, erhalte jedoch eine Fehlermeldung, die besagt, dass die Spaltenliste eine ungültige Spalte enthält, aber ich kann nicht herausfinden, woher dieser Spaltenname (ToDoId) kommt aus. </p> <p>Die Tabelle enthält nur zwei Spalten (Modell unten gezeigt), und der Primärschlüssel in MySQL ist <code>Id</code>. Woher kommt diese <code>ToDoId</code> und wie erzwinge ich, dass sie zu <code>Id</code> wird? </p> <p>Ich habe mir den gesamten Beispielcode (von hier) angesehen und glaube, dass ich alles aktualisiert habe, um meine neue Tabelle korrekt hinzuzufügen. </p> <p>Das ist mein Modell:</p> <pre class="brush:php;toolbar:false;">öffentliche Klasse ToDo { öffentliche Guid-ID { get; public string ToDoName { get; set; public ICollection<ToDos> publicToDo() { ToDos = new HashSet<ToDo>(); } }</pre> <p>Hier erhalte ich den Fehler – in der Abfrage: </p> <pre class="brush:php;toolbar:false;">öffentliche Klasse ToDoRepository: IToDoRepository { privater schreibgeschützter DatabaseContext _context; öffentliches ToDoRepository(DatabaseContext-Kontext) { _context = Kontext; } // Das folgende _context.ToDo ist definiert als: public virtual DbSet<ToDo> public IQueryable<ToDo> _context.ToDo.AsQueryable(); // Der Fehler ist hier aufgetreten... public IReadOnlyList<ToDo> Query .Auflisten(); }</pre> <p>Fehlermeldung: </p> <blockquote> <p>MySqlConnector.MySqlException: Unbekannte Spalte „t.ToDoId“ in „Feldliste“</p> </blockquote><p><br /></p>
P粉736935587P粉736935587405 Tage vor527

Antworte allen(1)Ich werde antworten

  • P粉610028841

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

    保持简单,使用EF 约定,并将您的主键重命名为:

    classNameID,所以在您的情况下:

    public Guid ToDoId { get; set; }

    或者按照这里的描述使用Key属性:

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

    友情建议将您的类命名为Todo

    Antwort
    0
  • StornierenAntwort