Мне нужно выполнить сложный запрос sql в ядре платформы сущностей 3.1.1. При исследовании я обнаружил, что типы ключей без ключа - это путь к go в подходе, основанном на коде. Я вижу много документов для dbquery, но это помечено как устаревшее в. net core 3.x
типы ключей без ключа
В соответствии с документацией Microsoft написано dbquery устарел, поэтому используйте вместо этого подход dbset, но с помощью dbset он пытается создать новую таблицу в базе данных. Как отключить генерацию таблиц в типах объектов без ключа при применении миграций?
Пример кода
public class ApplicationContext : DbContext
{
public DbSet<CustomQuery> CustomQuery { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Ignore<CustomQuery>();
modelBuilder.Entity<CustomQuery>().HasNoKey();
}
}
с. net core 2.2
var entity = _context.Query<CustomQuery>().FromSqlRaw(Regex.Unescape(selectQuery)).AsNoTracking().FirstOrDefault();
с. net core 3.1
var newEntity = _context.CustomQuery.FromSqlRaw(Regex.Unescape(selectQuery)).AsNoTracking().FirstOrDefault();
Если я пытаюсь применить миграцию, то создается новая таблица с именем пользовательского запроса, но мне это не нужно. потому что это просто модель, используемая для хранения значений из запроса на соединение, и я не буду вставлять, обновлять или удалять значения в этой таблице. как этого добиться?
или есть какой-то лучший подход к этой ситуации.