مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

iran

عضویت از 1394/01/31

تغییر Database بوسیله Migrations

  • سه شنبه 3 بهمن 1396
  • 09:50
تشکر میکنم

سلام 
من کد زیر را نوشته ام 

public override void Up()
        {

            Sql(
                @"
                alter  database[FileStreamTest]
                add filegroup phtest contains filestream
                alter  database[FileStreamTest]
                add file(name = 'PhotoFiles', filename = 'E:\Photo1\Photos') to filegroup  phtest"
            );


        }

که هنگام Update-Database 
ارور زیر را میدهد 

ALTER DATABASE statement not allowed within multi-statement transaction. 
ALTER DATABASE statement not allowed within multi-statement transaction.

برای رفع خطا باید چکار کنم 

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 3 بهمن 1396
  • 10:28

دقیقا میخواهید چه کاری انجام دهید؟

لطفا جزئیات بیشتری را در اختیار ما قرار دهید.

کاربر سایت

iran

عضویت از 1394/01/31

  • سه شنبه 3 بهمن 1396
  • 10:37

سلام

من می خواهم یک فایل گروپ (filegroup) ایجاد کنم در دیتبایس و یک فایل فیزیکی بهش اختصاص بدهم

کدش در خود sql بصورت زیر است

use FileStreamTest
alter  database [FileStreamTest]
add filegroup PhpotoFSFG contains filestream 
alter  database [FileStreamTest]
add file (name='PhotoFiles',filename='E:\Photo\Photos') to filegroup  PhpotoFSFG

اما این کد در Migrations کار نمیکند

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 3 بهمن 1396
  • 10:44

به شکل زیر عمل کنید:

        Sql(
            @"
                BEGIN TRANSACTION
                
                alter  database[FileStreamTest]
                add filegroup phtest contains filestream
                alter  database[FileStreamTest]
                add file(name = 'PhotoFiles', filename = 'E:\Photo1\Photos') to filegroup  phtest
                
                COMMIT"
            
        );

کاربر سایت

iran

عضویت از 1394/01/31

  • سه شنبه 3 بهمن 1396
  • 10:57

سلام

ارور زیر را بازهم میدهد

ALTER DATABASE statement not allowed within multi-statement transaction

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • سه شنبه 3 بهمن 1396
  • 11:48

دوباره تست کنید:

        Sql(
            @"
                BEGIN TRANSACTION
                alter  database[FileStreamTest]
                add filegroup phtest contains filestream
                COMMIT

                BEGIN TRANSACTION
                alter  database[FileStreamTest]
                add file(name = 'PhotoFiles', filename = 'E:\Photo1\Photos') to filegroup  phtest
                COMMIT
             "
            
        );

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)