示例#1
0
        /// <summary>
        /// 初始化code first 2
        /// </summary>
        /// <param name="list"></param>
        /// <param name="nameSpace">命名空间</param>
        /// <param name="dll">dll名称</param>
        public static void InstanceTable(string nameSpace, string dbKey = null, string dbFile = "db.json")
        {
            var projectName = Assembly.GetCallingAssembly().GetName().Name;
            var query       = new DataQuery();

            query.Config = DataConfig.Get(dbKey, projectName, dbFile);
            query.Key    = dbKey;

            MapXml.CreateLogTable(query);
            var assembly = AppDomain.CurrentDomain.GetAssemblies().ToList().Find(a => a.FullName.Split(',')[0] == projectName);

            if (assembly == null)
            {
                assembly = Assembly.Load(projectName);
            }

            if (assembly != null)
            {
                assembly.ExportedTypes.ToList().ForEach(a => {
                    var typeInfo = (a as TypeInfo);
                    if (typeInfo.Namespace != null && typeInfo.Namespace == nameSpace)
                    {
                        BaseTable.Check(query, a.Name, typeInfo.DeclaredProperties.ToList(), typeInfo.GetCustomAttributes().ToList());
                    }
                });
            }
        }
示例#2
0
        /// <summary>
        /// 初始化code first 2
        /// </summary>
        /// <param name="list"></param>
        /// <param name="nameSpace">命名空间</param>
        /// <param name="dll">dll名称</param>
        public static void InstanceTable(string nameSpace, string dbKey = null, string dbFile = "db.json", string projectName = null)
        {
            var query = new DataQuery();

            query.Config = DataConfig.Get(dbKey, projectName, dbFile);
            query.Key    = dbKey;

            MapXml.CreateLogTable(query);
            AppDomain.CurrentDomain.GetAssemblies().ToList().ForEach(assembly =>
            {
                try
                {
                    assembly.ExportedTypes.ToList().ForEach(a =>
                    {
                        var typeInfo = (a as TypeInfo);
                        if (typeInfo.Namespace != null && typeInfo.Namespace == nameSpace && typeInfo.GetCustomAttribute <TableAttribute>() != null)
                        {
                            BaseTable.Check(query, a.Name, typeInfo.DeclaredProperties.ToList(), typeInfo.GetCustomAttributes().ToList());
                        }
                    });
                }
                catch (Exception ex) { }
            });
        }