gpt4 book ai didi

c# - 不带参数的 DbContext ExecuteSQLCommand

转载 作者:行者123 更新时间:2023-11-30 19:17:49 25 4
gpt4 key购买 nike

我试图传入一个 SQL 字符串来删除一些记录。我正在使用 DbContext.Database.ExecuteSqlCommand 函数,但是除了 SQL 字符串之外,它还需要一个以下形式的参数列表:params Object[] parameters

因为我不需要发送任何参数,所以我尝试传递 null,但这会生成一个错误,指出 null 不是有效参数。我找不到该方法的重载。如何发送不需要额外参数的 SQL 命令?这是我的代码示例:

db.Database.ExecuteSqlCommand("DELETE FROM SignoffCommentAttachment 
WHERE SignoffCommentAttachment.SignoffCommentID
IN (SELECT [SignoffCommentID] FROM [SignoffComments]
WHERE SignoffID = " + signOffID.ToString() + ")", null);

最佳答案

parameters是一个params参数,所以你可以给它传0给很多对象。这应该有效

db.Database.ExecuteSqlCommand("DELETE FROM SignoffCommentAttachment WHERE SignoffCommentAttachment.SignoffCommentID IN (SELECT [SignoffCommentID] FROM [SignoffComments] WHERE SignoffID = " + signOffID.ToString() + ")");

不过,您确实应该参数化 signOffID。有点像

db.Database.ExecuteSqlCommand("DELETE FROM SignoffCommentAttachment WHERE SignoffCommentAttachment.SignoffCommentID IN (SELECT [SignoffCommentID] FROM [SignoffComments] WHERE SignoffID = {0})", signOffID);

关于c# - 不带参数的 DbContext ExecuteSQLCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818922/

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