public void SqlPropertyNoStoreNonIdentifierGrouping([DataSources] string context)
        {
            using (new FirebirdQuoteMode(FirebirdIdentifierQuoteMode.Auto))
                using (var db = GetDataContext(context))
                    using (db.CreateLocalTable(new []
                    {
                        new DynamicTablePrototype {
                            NotIdentifier = 77, Value = 5
                        },
                        new DynamicTablePrototype {
                            NotIdentifier = 77, Value = 5
                        }
                    }))
                    {
                        var query =
                            from d in db.GetTable <DynamicTable>()
                            group d by new { NI = Sql.Property <int>(d, TestProvNameDb2i.IsiSeries(context) ? "NotIdentifier" : "Not Identifier") }
                        into g
                            select new
                        {
                            g.Key.NI,
                            Count = g.Count(),
                            Sum   = g.Sum(i => Sql.Property <int>(i, TestProvNameDb2i.IsiSeries(context) ? "SomeValue" : "Some Value"))
                        };

                        var result = query.ToArray();

                        Assert.AreEqual(77, result[0].NI);
                        Assert.AreEqual(2, result[0].Count);
                        Assert.AreEqual(10, result[0].Sum);
                    }
        }
        public void SqlPropertyNoStoreNonIdentifier([DataSources] string context)
        {
            using (new FirebirdQuoteMode(FirebirdIdentifierQuoteMode.Auto))
                using (var db = GetDataContext(context))
                    using (db.CreateLocalTable(new []
                    {
                        new DynamicTablePrototype {
                            NotIdentifier = 77
                        }
                    }))
                    {
                        var query =
                            from d in db.GetTable <DynamicTable>()
                            select new
                        {
                            NI = Sql.Property <int>(d, TestProvNameDb2i.IsiSeries(context) ? "NotIdentifier"  : "Not Identifier")
                        };

                        var result = query.ToArray();

                        Assert.AreEqual(77, result[0].NI);
                    }
        }
        public void SchemaProvider([IncludeDataSources(TestProvNameDb2i.All_73)] string context)
        {
            using (var conn = new DataConnection(context))
            {
                var sp       = conn.DataProvider.GetSchemaProvider();
                var dbSchema = sp.GetSchema(conn);

                var table = dbSchema.Tables.Single(t => t.IsDefaultSchema && t.TableName == "ALLTYPES");

                if (TestProvNameDb2i.IsiSeries(context))
                {
                    var binaryType = TestProvNameDb2i.IsiSeriesAccessClient(context) ? "BINARY(20)" : "BINARY";

                    Assert.That(table.Columns.Single(c => c.ColumnName == "BINARYDATATYPE").ColumnType, Is.EqualTo(binaryType));
                    Assert.That(table.Columns.Single(c => c.ColumnName == "VARBINARYDATATYPE").ColumnType, Is.EqualTo("VARBIN"));
                }
                else
                {
                    Assert.That(table.Columns.Single(c => c.ColumnName == "BINARYDATATYPE").ColumnType, Is.EqualTo("CHAR (5) FOR BIT DATA"));
                    Assert.That(table.Columns.Single(c => c.ColumnName == "VARBINARYDATATYPE").ColumnType, Is.EqualTo("VARCHAR (5) FOR BIT DATA"));
                }
            }
        }