遵循教程

时间:2019-09-16 00:28:19

标签: .net-core

好,这是我的问题。我在这里关注教程:

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(TaskCompletionSource 1 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(TaskCompletionSource 1 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连接,IReadOnlyDictionary 2 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”文件夹上设置权限才能使其正常工作?

2 个答案:

答案 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)

创建一个新的迁移。 在程序包管理器控制台中。