Функциональность, эквивалентная EF Core 3 DbQuery

В ef core 2.2 я использовал DbQuery для сопоставления необработанных результатов sql с объектом следующим образом:

public partial class AppDbContext{
    public DbQuery<SimpleQueryModel> SimpleQM {get;set;}
}

а потом

var result=_dbContext.SimpleQM.FromSql(sqlString,params);

это не создаст дополнительную таблицу и будет работать нормально. В ef core 3.1 DbQuery устарел и говорит мне использовать вместо него DbSet без ключа. Я настроил его следующим образом:

public partial class AppDbContext{
    public DbSet<SimpleQueryModel> SimpleQM {get;set;}
}

и в ModelCreating

builder.Entity<SimpleQueryModel>().HasNoKey();

но это создаст новую таблицу в новой миграции БД, и если я скажу ef игнорировать этот объект следующим образом

builder.Entity<SimpleQueryModel>().HasNoKey().Ignore();

Я не могу использовать _dbContext.SimpleQM.FromSqlRaw();это вызовет исключение и сообщит, что модель не включена в контекст. как я могу добиться такой же функциональности в ef core 3.1?

1 ответ

Решение

Задача решена! просто использовал эту конфигурацию.

builder.Entity<SimpleQueryModel>().HasNoKey().ToView("view_name_that_doesnt_exist");
Другие вопросы по тегам