PDA

View Full Version : سوال: عدم اجرای برنامه سی شارپ و آپدیت دیتابیس اس کیو ال



booysusa
جمعه 25 بهمن 1398, 20:46 عصر
درود بر مهندسان گرامی
لطفا بفرمائید مشکل این کجاس؟


من دستور Update-Database -Force میزنم و این خطا رو میده



PM> Update-Database -Force
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
No pending explicit migrations.
Applying automatic migration: 202002141737187_AutomaticMigration.
System.Data.SqlClient.SqlException (0x80131904): There is already an object named 'Permissions' in the database.
at System.Data.SqlClient.SqlConnection.OnError(SqlExc eption exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndW arning(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.RunExecuteNonQuer yTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNo nQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at System.Data.Entity.Infrastructure.Interception.Int ernalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
at System.Data.Entity.Infrastructure.Interception.DbC ommandDispatcher.NonQuery(DbCommand command, DbCommandInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSq l(MigrationStatement migrationStatement, DbConnection connection, DbTransaction transaction, DbInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.Infrastructure.Migra torLoggingDecorator.ExecuteSql(MigrationStatement migrationStatement, DbConnection connection, DbTransaction transaction, DbInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSt atementsInternal(IEnumerable`1 migrationStatements, DbConnection connection, DbTransaction transaction, DbInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSt atementsWithinTransaction(IEnumerable`1 migrationStatements, DbTransaction transaction, DbInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSt atementsWithinNewTransaction(IEnumerable`1 migrationStatements, DbConnection connection, DbInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSt atementsInternal(IEnumerable`1 migrationStatements, DbConnection connection, DbInterceptionContext interceptionContext)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSt atementsInternal(IEnumerable`1 migrationStatements, DbConnection connection)
at System.Data.Entity.SqlServer.DefaultSqlExecutionSt rategy.<>c__DisplayClass2_0.<Execute>b__0()
at System.Data.Entity.SqlServer.DefaultSqlExecutionSt rategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Migrations.DbMigrator.ExecuteSt atements(IEnumerable`1 migrationStatements, DbTransaction existingTransaction)
at System.Data.Entity.Migrations.DbMigrator.ExecuteOp erations(String migrationId, VersionedModel targetModel, IEnumerable`1 operations, IEnumerable`1 systemOperations, Boolean downgrading, Boolean auto)
at System.Data.Entity.Migrations.DbMigrator.AutoMigra te(String migrationId, VersionedModel sourceModel, VersionedModel targetModel, Boolean downgrading)
at System.Data.Entity.Migrations.Infrastructure.Migra torLoggingDecorator.AutoMigrate(String migrationId, VersionedModel sourceModel, VersionedModel targetModel, Boolean downgrading)
at System.Data.Entity.Migrations.DbMigrator.Upgrade(I Enumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.Infrastructure.Migra torLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.DbMigrator.UpdateInt ernal(String targetMigration)
at System.Data.Entity.Migrations.DbMigrator.EnsureDat abaseExists(Action mustSucceedToKeepDatabase)
at System.Data.Entity.Migrations.DbMigrator.Update(St ring targetMigration)
at System.Data.Entity.Infrastructure.Design.Executor. Update.<>c__DisplayClass0_0.<.ctor>b__0()
at System.Data.Entity.Infrastructure.Design.Executor. OperationBase.Execute(Action action)
ClientConnectionId:c7b8bd81-417b-464f-819b-d2f81f035177
Error Number:2714,State:6,Class:16
There is already an object named 'Permissions' in the database.
PM>
There is already an object named 'Permissions' in the database.

وقتی هم اجرا میکنم این خطا رو میده
http://s6.picofile.com/file/8388196534/setting.jpg



لطفا بفرمائید مشکل کار من کجاست که همه لنگم کرده:عصبانی++:
سپاس


مشخصات برنامم
ویژوال استودیو
سی شارپ
اس کیو ال
کدفرست
ویندوز فرم

mr.sirwan
جمعه 25 بهمن 1398, 21:29 عصر
سلام، دوست عزیز اصلا ارور رو خوندی؟ خود ارور دقیقا داره بهت میگه چیکار کن، اولا میگه که جدول Permissions از قبل داخل دیتابیس موجوده
مورد بعدی اروری که موقع اجرا بهت نشون میده، میگه قبلا یه فیلدهایی داشتی که در مدل جدیدت یا حذفشون کردی یا اسمشون رو عوض کردی، به همین خاطر مقادیری که اون فیلدهای قدیمی توی دیتابیس دارن باید حذف بشن، اما بصورت دیفالت و پیشفرض EF اینکار (یعنی حذف اون فیلدها توی دیتابیس) رو انجام نمیده و اون رو منوط به اهدای مجوز از طرف شما که برنامه نویسی قرار میده، حالا اون مجوز چیه؟ باید توی کلاس Configuration توی پوشه Migration فیلد AutomaticMigrationDataLossAllowed رو برابر true قرار بدی

booysusa
جمعه 25 بهمن 1398, 21:38 عصر
سلام، دوست عزیز اصلا ارور رو خوندی؟ خود ارور دقیقا داره بهت میگه چیکار کن، اولا میگه که جدول Permissions از قبل داخل دیتابیس موجوده
مورد بعدی اروری که موقع اجرا بهت نشون میده، میگه قبلا یه فیلدهایی داشتی که در مدل جدیدت یا حذفشون کردی یا اسمشون رو عوض کردی، به همین خاطر مقادیری که اون فیلدهای قدیمی توی دیتابیس دارن باید حذف بشن، اما بصورت دیفالت و پیشفرض EF اینکار (یعنی حذف اون فیلدها توی دیتابیس) رو انجام نمیده و اون رو منوط به اهدای مجوز از طرف شما که برنامه نویسی قرار میده، حالا اون مجوز چیه؟ باید توی کلاس Configuration توی پوشه Migration فیلد AutomaticMigrationDataLossAllowed رو برابر true قرار بدی

درود مهندس شبت بخیر
بله خطا رو خوندم و متوجه شدم میگه جدول Permissions از قبل داخل دیتابیس موجوده ، جایی یادم نیست بهش گفته باشم دوباره جدول Permissions رو بساز:اشتباه: چرا این خطا رو میده

در مورد AutomaticMigrationDataLossAllowed هم این کارو کردم ایا منظورتون اینه؟
http://s6.picofile.com/file/8388201134/setting1.jpg

mr.sirwan
جمعه 25 بهمن 1398, 23:23 عصر
AutomaticMigrationDataLossAllowed به اسم این پراپرتی دقت کن دوست عزیز

booysusa
شنبه 26 بهمن 1398, 11:40 صبح
AutomaticMigrationDataLossAllowed به اسم این پراپرتی دقت کن دوست عزیز

امکانش هست بگید چطوری باید این کارو کنم؟ نمیدانم
البته در اینترنت هم یه جستجو میکنم

mr.sirwan
یک شنبه 27 بهمن 1398, 09:28 صبح
داداش تو پست قبلی اونجایی که پراپرتی AutomaticMigrationsEnabled رو true کردی، دقیقا همونجا، پراپرتی AutomaticMigrationDataLossAllowed رو هم true کن