You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
EntityFrameworkCore.Jet/src/EFCore.Jet.Data/JetConfiguration.cs

92 lines
3.4 KiB
C#

using System;
namespace EntityFrameworkCore.Jet.Data
{
/// <summary>
/// Jet configuration
/// </summary>
public static class JetConfiguration
{
/// <summary>
/// The time span offset (Jet does not support timespans)
/// </summary>
public static DateTime TimeSpanOffset { get; set; } = new DateTime(1899, 12, 30);
private static object _integerNullValue = Int32.MinValue;
// CHECK: Replace with Nullable<Int32>
/// <summary>
/// Gets or sets the integer null value returned by queries. This should solve a Jet issue
/// that if I do a UNION ALL of null, int and null the Jet raises an error
/// </summary>
/// <value>
/// The integer null value.
/// </value>
public static object IntegerNullValue
{
get => _integerNullValue;
set
{
if (!(value is int) && value != null)
throw new ArgumentOutOfRangeException("value", "IntegerNullValue should be an int or null");
_integerNullValue = value;
}
}
public static DataAccessProviderType DefaultDataAccessProviderType { get; set; } = DataAccessProviderType.Odbc;
// The SQL statement
//
// (SELECT COUNT(*) FROM MSysRelationships)
//
// is a DUAL table simulation in Access databases
// It must be a single line table.
// If user cannot gain access to MSysRelationships table he can create a table with 1 record
// and change DUAL static property.
// I.e. create table dual with one and only one record
//
// CREATE TABLE Dual (id COUNTER CONSTRAINT pkey PRIMARY KEY)
// INSERT INTO Dual (id) VALUES (1)
// ALTER TABLE Dual ADD CONSTRAINT DualTableConstraint CHECK ((SELECT Count(*) FROM Dual) = 1)
//
// then change the DUAL property
//
// JetConfiguration.DUAL = "Dual";
//
// For more information see also https://en.wikipedia.org/wiki/DUAL_table
/// <summary>
/// The DUAL table or query
/// </summary>
public static string CustomDualTableName = "";
//MSysRelationships
//MSysAccessStorage
//#Dual
//(SELECT COUNT(*) FROM MSysAccessStorage)
public static string DetectedDualTableName = "#Dual";
/// <summary>
/// Gets or sets a value indicating whether show SQL statements.
/// </summary>
/// <value>
/// <c>true</c> to show SQL statements; otherwise, <c>false</c>.
/// </value>
public static bool ShowSqlStatements { get; set; } = false;
/// <summary>
/// Gets or sets a value indicating whether the connection pooling should be used
/// </summary>
/// <value>
/// <c>true</c> to use the connection pooling; otherwise, <c>false</c>.
/// </value>
public static bool UseConnectionPooling { get; set; } = false;
/// <summary>
/// Gets or sets a value indicating whether to return a default value for the column
/// if the column is not meant to be null and somehow the value stored is actually null
/// </summary>
/// <value>
/// <c>true</c> to return a default value; otherwise, <c>false</c>.
/// </value>
public static bool UseDefaultValueOnDBNullConversionError { get; set; } = false;
}
}