public void Test2() { var tbd = TableDefinition.FromType <TypeTestModel>(); var table = GetSchema().CreateTable("Test1", tbd); var model = new TypeTestModel(); model.String = "Testing..."; var statement = doob.PgSql.Statements.Insert.Into("TestTable") .AddColumnsFromTableDefinition(tbd) .AddValuesFromObject(model) .AddClause(Returning.Columns(tbd.PrimaryKeys().Select(p => p.GetNameForDb()).ToArray())); var sql = statement.GetSqlCommand(tbd); table.Insert(model); var executor = new DbExecuter(table.GetConnectionString()); var resp = executor.ExecuteReader <TypeTestModel>($"SELECT * FROM {table}"); }
protected Dictionary <string, object> Insert(object document, List <string> returnValues) { var dict = document.ToDotNetDictionary(); foreach (var col in TableDefinition.Columns()) { if (!col.CanBeNull && !String.IsNullOrWhiteSpace(col.DefaultValue)) { if (dict.ContainsKey(col.GetNameForDb())) { if (dict[col.GetNameForDb()] == null) { dict.Remove(col.GetNameForDb()); continue; } if (dict[col.GetNameForDb()] is long l) { if (l == 0) { dict.Remove(col.GetNameForDb()); continue; } } } } } var insert = Statements.Insert.Into(GetTableName()) .AddColumnsFromTableDefinition(TableDefinition) .AddValuesFromObject(dict); if (returnValues == null || !returnValues.Any()) { returnValues = TableDefinition.PrimaryKeys().Select(p => p.DbName).ToList(); } if (returnValues.Any()) { insert.AddClause(Returning.Columns(returnValues.ToArray())); } return(Execute().ExecuteReader <Dictionary <string, object> >(insert.GetSqlCommand(TableDefinition)).FirstOrDefault()); }
public void Test1() { var tbd = TableDefinition.FromType <TypeTestModel>(); var table = GetSchema().CreateTable("Test1", tbd); var model = new TypeTestModel(); model.String = "Testing..."; var statement = doob.PgSql.Statements.Insert.Into("TestTable") .AddColumnsFromTableDefinition(tbd) .AddValuesFromObject(model) .AddClause(Returning.Columns(tbd.PrimaryKeys().Select(p => p.GetNameForDb()).ToArray())); var sql = statement.GetSqlCommand(tbd); table.Insert(model); }