コード例 #1
0
ファイル: TypeTests.cs プロジェクト: windischb/PgSql
        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}");
        }
コード例 #2
0
ファイル: BaseTable.cs プロジェクト: windischb/PgSql
        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());
        }
コード例 #3
0
ファイル: TypeTests.cs プロジェクト: windischb/PgSql
        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);
        }