using System; using System.Data; namespace Dapper { /// /// Handles variances in features per DBMS /// class FeatureSupport { private static readonly FeatureSupport Default = new FeatureSupport(false), Postgres = new FeatureSupport(true); /// /// Gets the feature set based on the passed connection /// public static FeatureSupport Get(IDbConnection connection) { string name = connection?.GetType().Name; if (string.Equals(name, "npgsqlconnection", StringComparison.OrdinalIgnoreCase)) return Postgres; return Default; } private FeatureSupport(bool arrays) { Arrays = arrays; } /// /// True if the db supports array columns e.g. Postgresql /// public bool Arrays { get; } } }