Sql server 在实体框架中通过ExecuteSqlCommand更改表

Sql server 在实体框架中通过ExecuteSqlCommand更改表,sql-server,entity-framework,execute,sqlcommand,Sql Server,Entity Framework,Execute,Sqlcommand,我尝试在sqlserver中更改一个表。编辑默认值后,我执行此查询,没有任何问题。查询得到正确执行。但是当我在EF中使用ExecuteSqlCommand尝试相同的查询时,我得到了一个错误 问题是: ALTER TABLE tblPerson ADD [ddd] nvarchar(Max) ALTER TABLE tblPerson DROP COLUMN [dd] UPDATE tblPerson SET aa = '---', bb = '---'

我尝试在sqlserver中更改一个表。编辑默认值后,我执行此查询,没有任何问题。查询得到正确执行。但是当我在EF中使用
ExecuteSqlCommand
尝试相同的查询时,我得到了一个错误

问题是:

ALTER TABLE tblPerson
    ADD [ddd] nvarchar(Max)

  ALTER TABLE tblPerson
    DROP COLUMN [dd]

UPDATE tblPerson
SET    aa = '---',
       bb = '---',
       cc = '---',
       ddd = '---',
       Id = '00000000-0000-0000-0000-000000000001',
       ModifiedDate = '2016/03/13 15:53:24',
       ModifiedUser = 'c012e46c-2a03-4238-917c-659c1ab3f33b'
WHERE  (Id = '00000000-0000-0000-0000-000000000001')

IF @@ROWCOUNT = 0


  INSERT INTO tblPerson
              (aa,
               bb,
               cc,
               ddd,
               Id,
               CreateDate,
               ModifiedDate,
               ModifiedUser)
  VALUES      ('---',
               '---',
               '---',
               '---',
               '00000000-0000-0000-0000-000000000001',
               '2016/03/13 15:53:24',
               '2016/03/13 15:53:24',
               'c012e46c-2a03-4238-917c-659c1ab3f33b');
此查询在sql控制台上正确运行,但当我这样运行时:

context.Database.ExecuteSqlCommand(stringCommand)

我得到这个错误:

列名“ddd”无效


这是完整的错误信息吗?是不是读起来像这样“您在第X行的sql语法blah中有错误?错误是无效的列名“ddd”。我假设问题是,当解析查询时,表中没有列ddd,这会导致错误。”。在更新之前单独运行alter+drop语句,它应该可以正常工作。您好,JamesZ,您说得对,如果我在更新之前单独运行alter+drop语句,它可以正常工作,但我希望在一个事务上运行查询。