运行 存储过程需要 DbSet 吗?
Is a DbSet required to run a stored procedure?
我有一个存储过程,它 returns 来自多 table 查询的数据。为此,我是否需要为查询中涉及的每个 table 创建一个 DbSet?我发现所有使用 FromSql 的示例都在 FromSql 子句之前指定了 DbSet(例如,下面示例中的 Books)。
using (var context = new SampleContext())
{
var books = context.Books
.FromSql("EXEC GetAllBooks")
.ToList();
}
我的理解是一个 DbSet 代表一个 table。请注意,我正在处理现有的数据库,因此我没有使用 EF 生成 tables.
谢谢,
我假设 EFCore 给出了 FromSql 的标签和用法。
对于 EFCore 2.1+,我会使用 DbQuery (https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbquery-1?view=efcore-2.2)。
对于已弃用 DbQuery 的 EFCore 3.0,替换为无密钥 DbSet (https://docs.microsoft.com/en-us/ef/core/modeling/keyless-entity-types)。
我已经用存储过程完成了前者,它的工作方式与您预期的一样。
我有一个存储过程,它 returns 来自多 table 查询的数据。为此,我是否需要为查询中涉及的每个 table 创建一个 DbSet?我发现所有使用 FromSql 的示例都在 FromSql 子句之前指定了 DbSet(例如,下面示例中的 Books)。
using (var context = new SampleContext())
{
var books = context.Books
.FromSql("EXEC GetAllBooks")
.ToList();
}
我的理解是一个 DbSet 代表一个 table。请注意,我正在处理现有的数据库,因此我没有使用 EF 生成 tables.
谢谢,
我假设 EFCore 给出了 FromSql 的标签和用法。
对于 EFCore 2.1+,我会使用 DbQuery (https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbquery-1?view=efcore-2.2)。
对于已弃用 DbQuery 的 EFCore 3.0,替换为无密钥 DbSet (https://docs.microsoft.com/en-us/ef/core/modeling/keyless-entity-types)。
我已经用存储过程完成了前者,它的工作方式与您预期的一样。