Вы можете использовать Raw SQL Запросы
Примечание по безопасности: Всегда использовать параметризацию для необработанных SQL запросов
Для данного набора данных / result:
![dataset](https://i.stack.imgur.com/E3cmy.png)
Класс сущности для EF Core: Sandbox.cs
public class Sandbox
{
public int SandboxId { get; set; }
public string StringOrNumber { get; set; }
}
Создайте DbSet в вашем контексте:
public DbSet<Sandbox> Sandboxes { get; set; }
Пометить как ключ:
modelBuilder.Entity<Sandbox>().HasNoKey();
Тест:
public async Task<IList<Sandbox>> GetNumberList()
{
// 1 = number, 0 = string
var isNumeric = new SqlParameter("isNumeric", 1);
var listOfNumbers = await _context.Sandboxes
.FromSqlRaw("SELECT SandboxId, StringOrNumber FROM dbo.Sandbox WHERE ISNUMERIC(StringOrNumber) = @isNumeric", isNumeric)
.ToListAsync();
return listOfNumbers;
}
Альтернативой FromSqlRaw является FromSqlInterpolated .
var listOfNumbers = await _context.Sandboxes
.FromSqlInterpolated($"SELECT SandboxId, StringOrNumber FROM dbo.Sandbox WHERE ISNUMERIC(StringOrNumber) = {isNumeric}")
.ToListAsync();
![Test Result](https://i.stack.imgur.com/xQN9U.png)