我建立了一个查询,该查询涉及联接存在于独立数据库中的2个表。我想在我的.NET Core 2.1应用程序中运行此查询。这是我所拥有的:
查询:
INSERT INTO Database2.dbo.Table2
SELECT * FROM Table1
WHERE Col1 = 5
此查询在SQL Operations Studio中正常工作。
C#:
using(var context = ConnectionHelper.getContext(dbInfo))
{
string MySQLQuery =
" INSERT INTO Database2.dbo.Table2 " +
" SELECT * FROM Table1 " +
" WHERE Col1 = 5 ";
try
{
context.Database.ExecuteSqlCommand(MySQLQuery);
}
catch(Exception e)
{
Console.WriteLine(e.Message); // This doesn't get called, the query doesn't throw an error.
}
}
当我通过.NET Core运行查询时,没有任何反应。我期望将约1000行写入Database2.dbo.Table2
,但写入0。没有记录错误消息,因此.NET Core似乎认为它已成功执行了给定的SQL查询。我假设错误是由于我对Database2
的引用引起的。
答案 0 :(得分:1)
该问题的解决方案是避免在给定的上下文中使用update.packages()
。由于我对此查询不需要特别的EF功能,因此我最终使用了ExecuteSqlCommand
库中的SqlCommand.ExecuteNonQuery()
。这是一个工作示例:
System.Data.SqlClient