Key features and compatibility

Compatibility

  • Support for Google BigQuery
  • Compatibility with the Google BigQuery REST API v2
  • GoogleSQL queries executed natively; Legacy SQL available as an option
  • x64 and x86 architecture

Platforms

  • .NET 5.0-11.0
  • .NET Core 2.0-3.1
  • .NET Framework 4.6.1-4.8
  • .NET Standard 2.0
  • ASP.NET Core
  • Blazor
  • .NET MAUI

.NET languages

  • C#
  • VB.NET
  • F#

ORM support

  • Entity Framework Core 3.1, 8-11
  • Dapper 1.x, 2.x
  • NHibernate 1.x-5.x
  • Entity Developer, Devart's visual ORM designer

Entity Framework Core features

  • Full CRUD support
  • Database-First: reverse engineering of BigQuery tables to a model with the Scaffold-DbContext command
  • Code-First, including migrations
  • Support for BigQuery transactions
  • Wide support for BigQuery data types

Entity Framework Core limitations

  • Sequences and computed columns are not supported
  • Migrations cannot add a NOT NULL column to an existing table or make an existing column NOT NULL
  • Migrations cannot move a table to another dataset
  • The EnsureDeleted method is not supported
  • LIKE patterns support only the backslash as the escape character

Security standards

  • Authentication with a Google user account (OAuth 2.0)
  • Authentication with a Google Cloud service account (JSON private key)
  • Direct connection to Google BigQuery over HTTPS
  • Connection through a proxy server

Performance

  • Connection pooling that reuses authentication data
  • Pooling control through the connection string
  • Automatic retrieval of query result pages
  • Bulk data loading with the BigQueryLoader component
  • Asynchronous execution with the OpenAsync, ExecuteReaderAsync, ExecuteNonQueryAsync, and ExecuteScalarAsync methods
  • Asynchronous execution with the BeginExecuteReader/EndExecuteReader and BeginExecuteNonQuery/EndExecuteNonQuery methods

IDE integration

Visual Studio

Microsoft Visual Studio 2017-2026

  • Server Explorer integration with user account (OAuth 2.0) or service account authentication
  • Browsing BigQuery tables and columns in Server Explorer
  • Retrieve Data and New Query commands
  • Design-time components in the Toolbox: BigQueryConnection, BigQueryCommand, BigQueryDataAdapter, BigQueryCommandBuilder, BigQueryLoader, and BigQueryMonitor
  • Design-time editors for BigQueryConnection, BigQueryCommand, BigQueryDataAdapter, and BigQueryCommandBuilder

Without design-time integration

  • Visual Studio Code
  • JetBrains Rider

ADO.NET architecture

  • Standard ADO.NET classes: connection, command, data reader, data adapter, and parameters
  • Automatic generation of data adapter commands with BigQueryCommandBuilder
  • Connection string builder
  • Provider factory support
  • Metadata retrieval with the GetSchema method, including primary and foreign keys
  • Batch updates with the UpdateBatchSize property
  • Server-side transactions based on BigQuery sessions with the BigQueryTransaction class and the Snapshot isolation level
  • Distributed transactions with TransactionScope
  • DataSet and DataTable population with BigQueryDataAdapter
  • BigQueryException for errors returned by Google BigQuery

NuGet availability

dotnet add package Devart.Data.BigQuery
dotnet add package Devart.Data.BigQuery.EFCore
  • Package versions without a suffix (X.Y.Z) target Entity Framework Core 3.1
  • Package versions ending in .8, .9, .10, and .11 target Entity Framework Core 8, 9, 10, and 11

BigQuery technology support

  • GoogleSQL as the main SQL dialect and Legacy SQL with the Use Legacy SQL option
  • SELECT, INSERT, UPDATE, and DELETE statements
  • Support for all BigQuery standard SQL expressions, including functions and operations
  • Aggregate, array, date and time, geography, JSON, navigation, net, and hash functions
  • Support for BigQuery data types, including BIGNUMERIC, GEOGRAPHY, JSON, INTERVAL, RANGE, and STRUCT (RECORD)
  • ARRAY values returned as JSON text
  • Default dataset set in the connection string
  • Access to tables in other datasets and projects by the full name project.dataset.table
  • Bulk data loading through Google Cloud Storage with the BigQueryLoader component
  • SQL tracing with the BigQueryMonitor component and the dbMonitor utility