EF Core ToQueryString() 不包含架构

EF Core ToQueryString() does not include schema

我正在尝试使用 SqlDependency,它需要查询作为指定架构的字符串(dbo。[table 名称]),但 EF Core ToQueryString 不包括 dbo。

是否有另一种方法可以从包含 dbo 关键字的 Ef 核心获取查询,或者有一种方法可以强制 SqlDependency 接受更模糊的查询?

Entity Framework 核心不会对您要使用的模式做出任何假设。在 Sql 服务器中,通常它会是 dbo,但如果您不指定它,EF 将生成无模式的 SQL 语句。例如,这可能会引起意外。您在具有不同于 dbo.

的另一个默认模式的用户下生成数据库

我在使用 EF 核心时学到的教训:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    // *Always* specify schema. Otherwise EF will generate schema-less DDL + DML.
    modelBuilder.HasDefaultSchema("dbo");
    ...

这对你来说可能就足够了。你也可以指定模式 per table.