public async Task InsertWithOutputObjAsyncTest([IncludeDataSources(true, FeatureInsertOutputSingle)] string context, [Values(1, 2)] int value)
        {
            using (var db = GetDataContext(context))
                using (var source = db.CreateLocalTable <TableWithData>())
                {
                    var data = new TableWithData
                    {
                        Value    = value * 100,
                        Id       = value,
                        ValueStr = "SomeStr" + value
                    };

                    var output = await source.InsertWithOutputAsync(data);

                    Assert.AreEqual(data.Id, output.Id);
                    Assert.AreEqual(data.Value, output.Value);
                    Assert.AreEqual(data.ValueStr, output.ValueStr);
                }
        }
        public void InsertWithOutputObjTest([IncludeDataSources(true, TestProvName.AllSqlServer2008Plus)] string context, [Values(1, 2)] int value)
        {
            using (var db = GetDataContext(context))
                using (var source = db.CreateLocalTable <TableWithData>())
                {
                    var data = new TableWithData
                    {
                        Value    = value * 100,
                        Id       = value,
                        ValueStr = "SomeStr" + value
                    };

                    var output = source.InsertWithOutput(data);

                    Assert.AreEqual(data.Id, output.Id);
                    Assert.AreEqual(data.Value, output.Value);
                    Assert.AreEqual(data.ValueStr, output.ValueStr);
                }
        }