Ejemplo n.º 1
0
        /// <summary>
        /// 获取所有数据模型的信息(从代码)
        /// </summary>
        /// <returns></returns>
        private List <IModelInfo> GetModelInfos()
        {
            var result = new List <IModelInfo>();

            foreach (var model in storeModel.EntityTypes)
            {
                var i  = new IModelInfo();
                var ps = new List <IModelProperties>();

                i.Name       = model.Name;
                i.Properties = ps;
                //属性获取
                foreach (var p in model.Properties)
                {
                    ps.Add(new IModelProperties()
                    {
                        Name = p.Name,
                        PK   = p.IsStoreGeneratedIdentity,
                        Type = p.TypeName == "int" && p.IsStoreGeneratedIdentity ? "INTEGER" : p.TypeName
                    });
                }
                result.Add(i);
            }
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取所有数据模型的信息(从数据库)
        /// </summary>
        /// <returns></returns>
        private List <IModelInfo> GetModelInfosForDb()
        {
            var result = new List <IModelInfo>();

            using (var con = new SQLiteConnection(connstr))
            {
                con.Open();
                using (var cmd = new SQLiteCommand(con))
                {
                    cmd.CommandText = "select name from sqlite_master where type='table' order by name";
                    using (var rd = cmd.ExecuteReader())
                    {
                        while (rd.Read())
                        {
                            var modelInfo = new IModelInfo();
                            modelInfo.Name       = rd["name"].ToString().Substring(0, rd["name"].ToString().Length - 1);
                            modelInfo.Properties = GetModelProperties(modelInfo.TableName);
                            result.Add(modelInfo);
                        }
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 生成创建表SQL语句
        /// </summary>
        /// <param name="model">模型信息</param>
        /// <returns></returns>
        private string GetCreateTableSQL(IModelInfo model)
        {
            string sql = $"CREATE TABLE \"{model.TableName}\" (";

            foreach (var p in model.Properties)
            {
                string add     = p.PK ? $"{p.Type} PRIMARY KEY" : p.Type + (p.NotNull ? " NOT NULL" : "");
                string addChar = p == model.Properties[0] ? "" : ",";
                sql += $"{addChar}[{p.Name}] {add}";
            }
            sql += ")";
            return(sql);
        }