Sql server 在实体框架中通过ExecuteSqlCommand更改表
我尝试在sqlserver中更改一个表。编辑默认值后,我执行此查询,没有任何问题。查询得到正确执行。但是当我在EF中使用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 = '---'
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语句,它可以正常工作,但我希望在一个事务上运行查询。