好,这是我的问题。我在这里关注教程:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-rp/intro?view=aspnetcore-2.2&tabs=visual-studio
当我到达首次测试应用程序的部分时,我得到了数据库连接错误。我没有碰过连接字符串(本教程未提及)。但是我得到的错误是(通过控制台):
失败:Microsoft.EntityFrameworkCore.Database.Command [20102] 执行DbCommand失败(76ms)[Parameters = [],CommandType ='Text',CommandTimeout = '60'] 创建数据库[SchoolContext-ce3ad5d4-bcc1-45d9-a13f-50c3b2624a6f]; System.Data.SqlClient.SqlException(0x80131904):尝试打开或创建物理文件'C:\ Users \ SchoolContext-ce3ad5d4-bcc1-45d9-a13f-50c3b2624a6f时,CREATE FILE遇到操作系统错误5(访问被拒绝。) .mdf”。 CREATE DATABASE失败。列出的某些文件名无法创建。检查相关错误。 在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔值breakConnection,操作
1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔调用方HasConnectionLock,布尔asyncClose) 在System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean和dataReady) 在System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(字符串methodName,布尔异步,Int32超时,布尔asyncWrite) 在System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary
2个parameterValues)处 ClientConnectionId:2aa20854-bffb-4fcb-b736-4d1669245bf5 错误号:5123,状态:1,类:16 失败:MY_PROJECT.Program [0] 创建数据库时发生错误。 System.Data.SqlClient.SqlException(0x80131904):尝试打开或创建物理文件'C:\ Users \ SchoolContext-ce3ad5d4-bcc1-45d9-a13f-50c3b2624a6f时,CREATE FILE遇到操作系统错误5(访问被拒绝。) .mdf”。 CREATE DATABASE失败。列出的某些文件名无法创建。检查相关错误。 在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔值breakConnection,操作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) 在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔调用方HasConnectionLock,布尔asyncClose) 在System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean和dataReady) 在System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(字符串methodName,布尔异步,Int32超时,布尔asyncWrite) 在System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary
2个parameterValues)处 在Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteNonQuery(IRelationalConnection连接,IReadOnlyDictionary2 parameterValues) at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary
2个参数值)处 在Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands,IRelationalConnection连接) 在Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Create() 在Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreated() 在Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.EnsureCreated() 在C:\ Users \\ source \ repos \ MY_PROJECT \ MY_PROJECT \ Program.cs:第23行的MY_PROJECT.Program.Main(String [] args) ClientConnectionId:2aa20854-bffb-4fcb-b736-4d1669245bf5 错误号:5123,状态:1,类:16
因此,它甚至没有创建数据库。
问题可能是什么?我已经用Google搜索了一些内容,但是似乎没有什么可以真正回答这个特定问题。我是否需要在“ my_username”文件夹上设置权限才能使其正常工作?
答案 0 :(得分:0)
对于感兴趣的人,我发现了这个问题的答案。
显然,这不是.NET或.NET Core的缺陷。这是SQL Server本地数据库问题。如果您正在运行SQL 2017(就我而言),则必须安装最新的累积更新。这样可以解决问题。
到目前为止,最新的累积更新是此:SQL Server 2017的累积更新程序包19-KB4535007
我从这里来的:https://www.microsoft.com/en-us/download/details.aspx?id=56128
答案 1 :(得分:0)
创建一个新的迁移。 在程序包管理器控制台中。