C#中使用EF Core查询MySQL时,主键列名不正确
P粉736935587
P粉736935587 2023-08-17 13:45:14
[MySQL讨论组]

我正在学习如何在C#中查询Mysql数据库,但是收到了一个错误,说在列列表中有一个无效的列,但是我无法弄清楚那个列名(ToDoId)是从哪里来的。

表中只有两列(如下所示的模型),而mysql中的主键是Id。那个ToDoId是从哪里来的,我如何强制它变成Id

我查看了所有的示例代码(来自这里),我相信我已经更新了所有的东西,以正确地添加我的新表。

这是我的模型:

public class ToDo
{
    public Guid Id { get; set; }
    public string ToDoName { get; set; } = null!;

    public ICollection<ToDo> ToDos { get; set; }

    public ToDo()
    {
        ToDos = new HashSet<ToDo>();
    }
}

这是我遇到错误的地方 - 在查询中:

public class ToDoRepository : IToDoRepository
{
    private readonly DatabaseContext _context;

    public ToDoRepository(DatabaseContext context)
    {
        _context = context;
    }

    //  下面的 _context.ToDo 被定义为:public virtual DbSet<ToDo> ToDo { get; set; } = null!;
    public IQueryable<ToDo> Query => _context.ToDo.AsQueryable();

    // 错误发生在这里...    
    public IReadOnlyList<ToDo> List => Query
        .ToList();  
}

错误信息:

MySqlConnector.MySqlException: Unknown column 't.ToDoId' in 'field list'


P粉736935587
P粉736935587

全部回复(1)
P粉610028841

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

classNameID,所以在您的情况下:

public Guid ToDoId { get; set; }

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号