Ejemplo n.º 1
0
        public void Upsert <T>(T dataClass, string uniqueColmn)
        {
            var executer  = new DynamicRDBService(this.SqlCreator, this.DataRepository);
            var dbobjects = new DBobjectConverter().ClassToDBObject(dataClass);

            dbobjects.First(p => p.ColumnName == uniqueColmn.ToLower()).Unique = true;
            try
            {
                executer.DynamicInsert(dbobjects, dataClass.GetType().Name.ToLower());
            }
            catch (DbException ex)
            {
                //本当はもっと厳密にチェックしなくては。。。
                executer.Update(dbobjects, dataClass.GetType().Name.ToLower(), dbobjects.FirstOrDefault(p => p.Unique == true));
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var executer = new DynamicRDBService(new SQLiteCreator(), new SqliteRepository(new SqliteDBConfig().SQLiteConnection()));
            //var executer = new DynamicRDBService(new PostgreCreator(), new PostgreRepository(new PostgreDBConfig().NpgsqlConnection()));

            var startupPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);;

            //Common
            JObject jObject = ReadJsonFile(Path.Combine(startupPath, "test.json"));
            var     info    = CreateInfo(jObject);

            executer.DynamicInsert(info.Item1, info.Item2);

            jObject = ReadJsonFile(Path.Combine(startupPath, "test2.json"));
            info    = CreateInfo(jObject);
            executer.DynamicInsert(info.Item1, info.Item2);

            //AddColumn
            jObject = ReadJsonFile(Path.Combine(startupPath, "test3.json"));
            info    = CreateInfo(jObject);
            executer.DynamicInsert(info.Item1, info.Item2);

            //xml
            XmlDocument doc = new XmlDocument();
            var         str = ReadFile(Path.Combine(startupPath, "test4.xml"));

            doc.LoadXml(str);
            string jsonText    = JsonConvert.SerializeXmlNode(doc);
            var    jObjectTemp = JObject.Parse(jsonText);

            jObject = new JObject();

            foreach (var j in jObjectTemp["xml"].Children())
            {
                jObject.Add(j);
            }

            info = CreateInfo(jObject);
            executer.DynamicInsert(info.Item1, info.Item2);

            //Multi
            jObject = ReadJsonFile(Path.Combine(startupPath, "test5.json"));
            List <IEnumerable <DBObject> > dBObjects = new List <IEnumerable <DBObject> >();

            string dbName = string.Empty;

            foreach (JObject j in jObject["array"].Children())
            {
                var dbinfo = CreateInfo(j);
                dBObjects.Add(dbinfo.Item1);
                dbName = dbinfo.Item2;
            }
            executer.DynamicMultiInsert(dBObjects, dbName);

            //dataclass(便利なRapper)
            var productData = new ProductData {
                ProductName = "Magazine", Price = 500, ReleaseDate = DateTime.Now
            };

            new CommonRepository(new SQLiteCreator(), new SqliteRepository(new SqliteDBConfig().SQLiteConnection())).Upsert(productData, nameof(ProductData.ProductName));
        }