我正在学习如何在C#中查询Mysql数据库,但是收到了一个错误,说在列列表中有一个无效的列,但是我无法弄清楚那个列名(ToDoId)是从哪里来的。
表中只有两列(如下所示的模型),而mysql中的主键是Id
。那个ToDoId
是从哪里来的,我如何强制它变成Id
?
我查看了所有的示例代码(来自这里),我相信我已经更新了所有的东西,以正确地添加我的新表。
这是我的模型:
public class ToDo { public Guid Id { get; set; } public string ToDoName { get; set; } = null!; public ICollectionToDos { get; set; } public ToDo() { ToDos = new HashSet (); } }
这是我遇到错误的地方 - 在查询中:
public class ToDoRepository : IToDoRepository { private readonly DatabaseContext _context; public ToDoRepository(DatabaseContext context) { _context = context; } // 下面的 _context.ToDo 被定义为:public virtual DbSetToDo { get; set; } = null!; public IQueryable Query => _context.ToDo.AsQueryable(); // 错误发生在这里... public IReadOnlyList List => Query .ToList(); }
错误信息:
MySqlConnector.MySqlException: Unknown column 't.ToDoId' in 'field list'
保持简单,使用EF约定,并将您的主键重命名为:
classNameID,所以在您的情况下:
或者按照这里的描述使用Key属性:
友情建议将您的类命名为Todo