简体   繁体   English

ASP.NET更新数据库

[英]Asp.net updating database

My project so far consists of a simple, and empty, asp.net project solution using nothing besides what visual studio provides when you start a new project. 到目前为止,我的项目由一个简单且空的asp.net项目解决方案组成,除了在启动新项目时Visual Studio所提供的功能之外,没有任何其他用途。

For the first time I am using migrations to help in my development. 我第一次使用迁移来帮助开发。 So far I have enable migrations fine and added an initial migration via the package manager console. 到目前为止,我已经启用了良好的迁移,并通过包管理器控制台添加了初始迁移。 The only change I have done is modifying my Web.config to look at a new data source like this: 我所做的唯一更改是修改了Web.config,使其看起来像这样的新数据源:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=SYS-VIS-15\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnet-GiggHub-20160704033906.mdf;Initial Catalog=aspnet-GiggHub-20160704033906;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

Now, when I go to update my database by running 'update-database' in the package manager console I get the following error: 现在,当我通过在包管理器控制台中运行“ update-database”来更新数据库时,出现以下错误:

Directory lookup for the file "C:\\Users\\Admin\\Source\\Workspaces\\GigHub\\GiggHub\\GiggHub\\App_Data\\aspnet-GiggHub-20160704033906.mdf" failed with the operating system error 5(Access is denied.). 文件“ C:\\ Users \\ Admin \\ Source \\ Workspaces \\ GigHub \\ GiggHub \\ GiggHub \\ App_Data \\ aspnet-GiggHub-20160704033906.mdf”的目录查找失败,并出现操作系统错误5(拒绝访问。)。 CREATE DATABASE failed. CREATE DATABASE失败。 Some file names listed could not be created. 列出的某些文件名无法创建。 Check related errors. 检查相关错误。

I've checked all my permissions that I'm aware of, but can't see what I need to tick or untick to overcome this error. 我已经检查了我所知道的所有权限,但是看不到我需要勾选或取消选中以克服此错误的内容。 Does anyone know what to do? 有谁知道该怎么办?

The full file output is all follows: 完整的文件输出如下:

Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
System.Data.SqlClient.SqlException (0x80131904): Directory lookup for the file "C:\Users\Admin\Source\Workspaces\GigHub\GiggHub\GiggHub\App_Data\aspnet-GiggHub-20160704033906.mdf" failed with the operating system error 5(Access is denied.).
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
   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.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<NonQuery>b__0(DbCommand t, DbCommandInterceptionContext`1 c)
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext)
   at System.Data.Entity.SqlServer.SqlProviderServices.<>c__DisplayClass1a.<CreateDatabaseFromScript>b__19(DbConnection conn)
   at System.Data.Entity.SqlServer.SqlProviderServices.<>c__DisplayClass33.<UsingConnection>b__32()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<Execute>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation)
   at System.Data.Entity.SqlServer.SqlProviderServices.UsingConnection(DbConnection sqlConnection, Action`1 act)
   at System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection(DbConnection sqlConnection, Action`1 act)
   at System.Data.Entity.SqlServer.SqlProviderServices.CreateDatabaseFromScript(Nullable`1 commandTimeout, DbConnection sqlConnection, String createDatabaseScript)
   at System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection)
   at System.Data.Entity.Core.Common.DbProviderServices.CreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection)
   at System.Data.Entity.Core.Objects.ObjectContext.CreateDatabase()
   at System.Data.Entity.Migrations.Utilities.DatabaseCreator.Create(DbConnection connection)
   at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
   at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
   at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
   at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run()
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force)
   at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
ClientConnectionId:9b2f396d-dadf-4d0b-a334-1197e86beed1
Error Number:5133,State:1,Class:16

In Visual Studio click on VIEW -> SQL Server Object Explorer -> Expand SQL Server node.If you don't see (localdb) in that list it means you don't have it installed. 在Visual Studio中,单击查看-> SQL Server对象资源管理器->展开SQL Server节点。如果在该列表中没有看到(localdb),则意味着您没有安装它。

To install local db have a look at this SO question 要安装本地数据库,请查看 SO问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM