gpt4 book ai didi

c# - Entity Framework Core 可以运行非查询调用吗?

转载 作者:行者123 更新时间:2023-11-30 14:24:10 25 4
gpt4 key购买 nike

不幸的是,我的 EF 应用程序必须调用我无法更改的存储过程。虽然这并不理想,但我通常可以绕过它。但是,我有一个确实返回任何东西的存储过程。 EF 核心如何处理这个问题?我知道在以前的版本中您可以运行 ExecuteNonQuery,但我无法在 EF Core 中找到任何类似的东西。

我通常通过这样的帮助程序运行我的查询,其中 T 是一个映射到返回类型的类,EF 可以序列化为:

context.Set<T>()
.AsNoTracking()
.FromSql(query, args)
.ToListAsync();

但是看起来 Set 和 .Query 一样总是需要一个类型。我从上下文中看到的任何其他内容都不允许您进行不可查询的调用。我错过了什么吗?

我正在使用 Microsoft.EntityFrameworkCore:1.2.0

最佳答案

您可以使用 DbContext.DatabaseExecuteSqlCommand method

using(var context = new SampleContext())
{
var commandText = "INSERT Categories (CategoryName) VALUES (@CategoryName)";
var name = new SqlParameter("@CategoryName", "Test");
context.Database.ExecuteSqlCommand(commandText, name);
}

或者您可以恢复到 ADO.NET calls off the Context :

using (var context = new SampleContext())
using (var command = context.Database.GetDbConnection().CreateCommand())
{
command.CommandText = "DELETE From Table1";
context.Database.OpenConnection();
command.ExecuteNonQuery();
}

关于c# - Entity Framework Core 可以运行非查询调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308010/

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