C#中使用EF Core查詢MySQL時,主鍵列名不正確
P粉736935587
P粉736935587 2023-08-17 13:45:14
0
1
582
<p>我正在學習如何在C#中查詢Mysql資料庫,但收到了一個錯誤,說在列列表中有一個無效的列,但我無法弄清楚那個列名(ToDoId)是從哪裡來的。 </p> <p>表中只有兩列(如下圖的模型),而mysql中的主鍵是<code>Id</code>。那個<code>ToDoId</code>是從哪裡來的,我要如何強制它變成<code>Id</code>? </p> <p>我查看了所有的範例程式碼(來自這裡),我相信我已經更新了所有的東西,以正確地添加我的新表。 </p> <p>這是我的模型:</p> <pre class="brush:php;toolbar:false;">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>(); } }</pre> <p>這是我遇到錯誤的地方 - 在查詢中:</p> <pre class="brush:php;toolbar:false;">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(); }</pre> <p>錯誤訊息:</p> <blockquote> <p>MySqlConnector.MySqlException: Unknown column 't.ToDoId' in 'field list'</p> </blockquote><p><br /></p>
P粉736935587
P粉736935587

全部回覆(1)
P粉610028841

保持簡單,使用EF 約定,並將您的主鍵重新命名為:

classNameID,所以在您的情況下:

public Guid ToDoId { get; set; }

或按照這裡的描述使用Key屬性:

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

友誼建議將您的類別命名為Todo

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板