VS2019, Core 3.1, C#
Я перенес таблицу из существующей БД в обратном порядке:
Scaffold-DbContext 'my connection string' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables 'Accounts'
Один из столбцов - AcctSN (varchar) (50), ноль). Он генерируется следующим образом:
public string AcctSN { get; set; }
Не вижу в этом ничего плохого. (Это не ключ, и на нем нет индекса.)
У меня все подключено, и когда я звоню,
var accounts = await dbContext.Account.ToListAsync();
Я получаю следующую ошибку :
"Invalid column name 'AcctSN'."
Вот вся ошибка:
Class: 16
ClientConnectionId: {REDACTED GUID}
Data: {System.Collections.ListDictionaryInternal}
ErrorCode: -2146232060
Errors: {Microsoft.Data.SqlClient.SqlErrorCollection}
HResult: -2146232060
HelpLink: null
InnerException: null
LineNumber: 1
Message: "Invalid column name 'AcctSN'."
Number: 207
Procedure: ""
Server: "REDACTED"
Source: "Core Microsoft SqlClient Data Provider"
StackTrace: " at Microsoft.Data.SqlClient.SqlCommand.<>c.<ExecuteDbDataReaderAsync>b__164_0(Task`1 result)\r\n at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()\r\n at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)\r\n at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.Get
Result()\r\n at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.<ExecuteReaderAsync>d__17.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.<ExecuteReaderAsync>d__17.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.<ExecuteReaderAsync>d__17.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnumerator.<InitializeReaderAsync>d__18.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServi
ces.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.<ExecuteAsync>d__7`2.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.AsyncEnumerator.<MoveNextAsync>d__17.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.<ToListAsync>d__64`1.MoveNext()\r\n at System.Runtime.ExceptionService
s.ExceptionDispatchInfo.Throw()\r\n at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.<ToListAsync>d__64`1.MoveNext()\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\r\n at REDACTED.AccountRepository.<GetAccounts>d__2.MoveNext() in REDACTED"
State: 1
TargetSite: {System.Data.Common.DbDataReader <ExecuteDbDataReaderAsync>b__164_0(System.Threading.Tasks.Task`1[Microsoft.Data.SqlClient.SqlDataReader])}
Это отдельная таблица. Он не имеет отношения к другим таблицам. (Я не строил эту БД.) Внешних ключей нет. У класса есть еще одно строковое свойство, которое успешно связывается со столбцом varchar в БД; это работает, когда я закомментирую это поле AcctSN.
Любые идеи. Все, что я нашел, говорит о проблемах с ключами и связями, но, как я уже говорил выше, это не относится к этой ситуации.