About This Document
What Are the Zen Data Providers?
Using This Guide
Quick Start
ADO.NET Data Providers Installed with Zen
Supported .NET Framework Versions
Zen ADO.NET Data Providers Available with SDK Download
Defining Basic Connection Strings
Notes
Minimum Required Connection String Options
Connecting to a Database
Example: Using the Provider-Specific Objects
Example: Using the Common Programming Model
Example: Using the Zen Common Assembly
Using the Zen ADO.NET Entity Framework Data Provider
Using the Data Providers
About the Data Providers
Using Connection Strings
Guidelines
Using the Zen Performance Tuning Wizard
Stored Procedures
Using IP Addresses
Transaction Support
Using Local Transactions
Thread Support
Unicode Support
Isolation Levels
SQL Escape Sequences
Event Handling
Error Handling
Using .NET Objects
Developing Applications for .NET
Advanced Features
Using Connection Pooling
Creating a Connection Pool
Adding Connections to a Pool
Removing Connections from a Pool
Handling Dead Connection in a Pool
Tracking Connection Pool Performance
Using Statement Caching
Enabling Statement Caching
Choosing a Statement Caching Strategy
Using Connection Failover
Using Client Load Balancing
Using Connection Retry
Configuring Connection Failover
Setting Security
Code Access Permissions
Security Attributes
Using Zen Bulk Load
Use Scenarios for Zen Bulk Load
Zen Common Assembly
Bulk Load Data File
Example
Bulk Load Configuration File
Example
Determining the Bulk Load Protocol
Character Set Conversions
External Overflow File
Bulk Copy Operations and Transactions
Using Diagnostic Features
Tracing Method Calls
Using Environment Variables
Notes
Using Static Methods
PerfMon Support
Analyzing Performance With Connection Statistics
Enabling and Retrieving Statistical Items
The ADO.NET Data Providers
About Zen ADO.NET Data Providers
Namespace
C#
Visual Basic
Assembly Name
Using Connection Strings with the Zen ADO.NET Data Provider
Constructing a Connection String
Performance Considerations
Connection String Options that Affect Performance
Properties that Affect Performance
Data Types
Mapping Zen Data Types to .NET Framework Data Types
Mapping of Zen Data Types
Mapping Parameter Data Types
Mapping System.Data.DbTypes to PsqlDbTypes
Mapping .NET Framework Types to PsqlDbType
Data Types Supported with Stream Objects
Using Streams as Input to Long Data Parameters
Parameter Markers
Parameter Arrays
Zen ADO.NET Core Data Providers
About Zen ADO.NET Core Data Providers
Creating an Application in Visual Studio Using Zen ADO.Net Core DLL
Creating a UWP Application in Visual Studio Using Zen ADO.Net Core Data Provider
ADO.NET Data Provider Features Missing in Zen ADO.NET Core Data Provider
Zen ADO.NET Entity Framework Data Providers
About Zen ADO.NET Entity Framework Data Providers
Namespace
Assembly Names
Configuring Entity Framework 6.1
Configuration File Registration
Code-Based Registration
Using Multiple Entity Framework Versions Against the Same Database
Using Connection Strings with the Zen ADO.NET Entity Framework Data Provider
Defining Connection String Values in Server Explorer
Changes in Default Values for Connection String Options
Code First and Model First Support
Handling Long Identifier Names
Using Code First Migrations with the ADO.NET Entity Framework
Using Enumerations with the ADO.NET Entity Framework
Mapping Data Types and Functions
Type Mapping for Database First
Type Mapping for Database First
Type Mapping for Model First
Type Mapping for Code First
Mapping EDM Canonical Functions to Zen Functions
Aggregate Canonical Functions
Math Canonical Functions
Date and Time Canonical Functions
Bitwise Canonical Functions
String Canonical Functions
Other Canonical Functions
Extending Entity Framework Functionality
Enhancing Entity Framework Performance
Limiting the Size of XML Schema Files
Using Stored Procedures with the ADO.NET Entity Framework
Providing Functionality
Mapping to Pseudo Stored Procedure
Using Overloaded Stored Procedures
Using .NET Objects
Properties and Methods Differences with the ADO.NET Entity Data Provider
Creating a Model
Upgrading Entity Framework 5 Applications to Entity Framework 6.1
For More Information
Zen ADO.NET Entity Framework Core Data Providers
About Zen ADO.NET Entity Framework Core Data Providers
Namespace
Assembly Names
Configuring the Zen ADO.NET Entity Framework Core Data Provider
Using Connection Strings with the Zen ADO.NET Entity Framework Core Data Provider
Changes in Default Values for Connection String Options
Code First Support
Handling Long Identifier Names
Using Code First Migrations with the ADO.NET Entity Framework Core
Using Reverse Engineering (Scaffolding)
Type Mapping for Code First
Mapping EDM Canonical Functions to Zen Functions
Aggregate Canonical Functions
Math Canonical Functions
Date and Time Canonical Functions
String Canonical Functions
Other Canonical Functions
Extending Entity Framework Functionality
Using Stored Procedures with the ADO.NET Entity Framework Core
Upgrading an Application from Entity Framework 6.x to Entity Framework Core
Limitations
For More Information
Using Zen Data Providers in Visual Studio
Adding Connections
Adding Connections in Server Explorer
Advanced
Connection Pooling
Failover
Performance
Schema Information
Security
Standard Connection
Tracing
Adding Connections with the Data Source Configuration Wizard
Using the Zen Performance Tuning Wizard
Using Provider-Specific Templates
Creating a New Project
Adding a Template to an Existing Project
Using the Zen Visual Studio Wizards
Creating Tables with the Add Table Wizard
Creating Views with the Add View Wizard
Adding Components from the Toolbox
Data Provider Integration Scenario
Using the Microsoft Enterprise Libraries
Data Access Application Blocks
When Should You Use the DAAB?
Should You Use Generic or Database-specific Classes?
Configuring the DAAB
Adding a New DAAB Entry
Adding the Data Access Application Block to Your Application
Using the DAAB in Application Code
Logging Application Blocks
When Should You Use the LAB?
Configuring the LAB
Adding a New Logging Application Block Entry
Using the LAB in Application Code
Additional Resources
A. .NET Objects Supported
.NET Base Classes
Data Provider-Specific Classes
PsqlBulkCopy
PsqlBulkCopyColumnMapping
PsqlBulkCopyColumnMappingCollection
PsqlCommand Object
PsqlCommandBuilder Object
PsqlConnection Object
PsqlConnectionStringBuilder Object
Connection String Properties
PsqlCredential Object
PsqlDataAdapter Object
PsqlDataReader Object
PsqlError Object
PsqlErrorCollection Object
PsqlException Object
PsqlFactory Object
PsqlInfoMessageEventArgs Object
PsqlParameter Object
PsqlParameterCollection Object
PsqlTrace Object
PsqlTransaction Object
Zen Common Assembly Classes
CsvDataReader
CsvDataWriter
DbBulkCopy
DbBulkCopyColumnMapping
DbBulkCopyColumnMappingCollection
B. Getting Schema Information
Columns Returned by the GetSchemaTable Method
Retrieving Schema Metadata with the GetSchema Method
MetaDataCollections Schema Collections
DataSourceInformation Schema Collection
DataTypes Collection
ReservedWords Collection
Restrictions Collection
Additional Schema Collections
Columns Schema Collection
ForeignKeys Schema Collection
Indexes Schema Collection
PrimaryKeys Schema Collection
ProcedureParameters Schema Collection
Procedures Schema Collection
TablePrivileges Schema Collection
Tables Schema Collection
Views Schema Collection
C. SQL Escape Sequences for .NET
Date, Time, and Timestamp Escape Sequences
Example
Scalar Functions
Example
Outer Join Escape Sequences
Example
D. Locking and Isolation Levels
Locking
Isolation Levels
Locking Modes and Levels
E. Designing .NET Applications for Performance Optimization
Retrieving Data
Retrieving Long Data
Reducing the Size of Data Retrieved
Using CommandBuilder Objects
Choosing the Right Data Type
Selecting .NET Objects and Methods
Using Parameter Markers as Arguments to Stored Procedures
Designing .NET Applications
Managing Connections
Opening and Closing Connections
Using Statement Caching
Using Commands Multiple Times
Using Native Managed Providers
Updating Data
Using the Disconnected DataSet
Synchronizing Changes Back to the Data Source
F. Using an .edmx File
Code Examples
G. Bulk Load Configuration Files
Sample Bulk Data Configuration File
XML Schema Definition for a Bulk Data Configuration File
H. IANA Code Page Mappings
I. Glossary
.NET Architecture
ADO.NET
ADO.NET Entity Framework
assembly
bulk load
client load balancing
code access security (CAS)
common language runtime (CLR)
connection failover
connection pooling
connection retry
Data Access Application Block (DAAB)
destination table
entity
global assembly cache (GAC)
isolation level
load balancing
locking level
Logging Application Block (LAB)
managed code
namespace
Performance Monitor
stream
schema collection
strong name
unmanaged code
About This Document
I. Glossary