gpt4 book ai didi

c# - 带有 Entity Framework 的 SQL 触发器

转载 作者:太空宇宙 更新时间:2023-11-03 20:05:22 25 4
gpt4 key购买 nike

为什么这段代码会抛出错误?

using (ProviderContext db = new ProviderContext())
{
string sqlcommand = @"GO CREATE TRIGGER [Trigger] ON [dbo].[News] FOR insert AS BEGIN SET NOCOUNT OFF insert [Statistics](NewsStatID) select NewsID from inserted update [Statistics] set Hits = '0' update [Statistics] set Positive = '0' update [Statistics] set Negative = '0' END";
db.Database.ExecuteSqlCommand(sqlcommand);
db.SaveChanges();
}

An exception of type 'System.Data.SqlClient.SqlException' occurred in EntityFramework.SqlServer.dll but was not handled in user code

Additional information: Incorrect syntax near the keyword 'TRIGGER'.

提前致谢!

最佳答案

因为你的语法错误?

GO 不是 SQL Server 理解的关键字 - 它是管理工作室的一个特性。

引用文档(很明显,不是吗?):

Signals the end of a batch of Transact-SQL statements to the SQL Server utilities.

现在,您不在实用程序中,因此无法识别关键字。这也没有意义。如:不需要。

顺便说一句,这也是错误的:

set Negative = '0'

你随便写

set Negative = 0

SQL Server 完全可以处理数字。

关于c# - 带有 Entity Framework 的 SQL 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com