EF Core를 사용하여 C#에서 MySQL을 쿼리할 때 기본 키 열 이름이 올바르지 않습니다.
P粉736935587
2023-08-17 13:45:14
<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;">공개 클래스 ToDo
{
공개 GUID ID { 설정 }
공개 문자열 ToDoName { 가져오기 } = null!;
공개 ICollection<ToDo>
공개할일()
{
ToDos = new HashSet<ToDo>();
}
}</pre>
<p>검색어에서 다음 오류가 발생합니다. </p>
<pre class="brush:php;toolbar:false;">공개 클래스 ToDoRepository : IToDoRepository
{
개인 읽기 전용 DatabaseContext _context;
공개 ToDoRepository(DatabaseContext 컨텍스트)
{
_컨텍스트 = 컨텍스트;
}
// 다음 _context.ToDo는 다음과 같이 정의됩니다. public virtual DbSet<ToDo>
공개 IQueryable Query => _context.ToDo.AsQueryable();
// 여기서 오류가 발생했습니다.
공개 IReadOnlyList<ToDo>
.ToList();
}</pre>
<p>오류 메시지: </p>
<인용문>
<p>MySqlConnector.MySqlException: '필드 목록'의 알 수 없는 열 't.ToDoId'</p>
</blockquote><p><br /></p>
간단하게 유지하고 EF conventions을 사용하고 기본 키 이름을 다음과 같이 바꾸세요.
classNameID, 귀하의 경우:
으아악또는 여기에 설명된 대로 Key 속성을 사용하세요.
으아악클래스 이름을 정하는 친절한 제안 Todo