Simon_Whale Ответов: 0

Проблема с первым методом migrateasync кода EF


Я только что начал работать над новым проектом, где база данных сначала строится с использованием кода.

Я попытался запустить проект в первый раз и получил приведенное ниже исключение. Я это проверил

using (var serviceScope = serviceProvider.CreateScope())
{
    var db = serviceScope.ServiceProvider.GetService<ILoggingDbContext>();
    await db.Database.MigrateAsync();

}



1. Никаких изменений в базе данных были внесены в базу данных разработчиков.
2. Убедитесь, что у других разработчиков в команде нет такой же проблемы.

Я попытался погуглить сообщение об исключении, но каждый результат говорит об изменениях в базе данных, которые я пытаюсь сделать.

Может ли кто-нибудь подсказать мне, что делать дальше?

System.Data.SqlClient.SqlException
  HResult=0x80131904
  Message=Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.
  Source=Core .Net SqlClient Data Provider
  StackTrace:
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.EndExecuteNonQueryInternal(IAsyncResult asyncResult)
   at System.Data.SqlClient.SqlCommand.EndExecuteNonQuery(IAsyncResult asyncResult)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.<ExecuteAsync>d__17.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.<ExecuteNonQueryAsync>d__8.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.<ExecuteNonQueryAsync>d__1.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.<MigrateAsync>d__12.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at FFO.Data.Helpers.Startup.LoggingEfStartup.<InitializeDatabaseAsync>d__0.MoveNext() in C:\Users\simon_whale\Source\Repos\fleet fine online\FleetFineOnline\FFO-Data\Helpers\Startup\LoggingEFStartup.cs:line 17


Что я уже пробовал:

Много Google Fo на следующем исключении

SqlException: Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.


Проверка с другими разработчиками
Переустановка ветки для проекта.

Richard Deeming

Вы можете попробовать использовать Сценарий-Миграция[^] чтобы сгенерировать сценарий миграции SQL, на случай, если с ним что-то явно не так.

Simon_Whale

спасибо Ричард,

Мне придется забрать это в понедельник, так как, похоже, у меня еще нет доступа к SQL Server, а Босс ушел домой. после траления через исключение он терпит неудачу при попытке запустить sp_rename.

Затем, когда я пытаюсь выполнить команды, предложенные в вашей ссылке, чтобы также упасть для меня, что, как я полагаю, сводится к отсутствию доступа к базе данных.

0 Ответов