EF获取DbContext中已注册的所有实体类型

        /// <summary>
        /// 获取DbContext中已注册的实体类型
        /// </summary>
        /// <typeparam name="T">DbContext上下文类型</typeparam>
        /// <param name="ass">实体所在程序集</param>
        /// <returns></returns>
        public IEnumerable<Type> GetEntityTypes<T>(Assembly ass) where T : DbContext, new()
        {
            var contextType = typeof(T);
            if (contextType != null)
            {
                var contextObj = new T();
                var objectContext = ((IObjectContextAdapter)contextObj).ObjectContext;
                var mdw = objectContext.MetadataWorkspace;
                var items = mdw.GetItems<EntityType>(DataSpace.OSpace);
                return
                    items
                      .Select(e => e.FullName)
                      .Distinct()
                      .Select(ass.GetType);
            }
            return null;
        }
时间: 2024-07-29 21:59:18

EF获取DbContext中已注册的所有实体类型的相关文章

android 获取设备中已启动的服务并判断某一服务是否启动

我们常常在开发的时候,通过获取系统已启动的服务来判断该服务器是否还需要再启动. 而本文将介绍android设备中已启动的服务,并判断某一服务是启动 1.根据ACTIVITY_SERVICE获取系统服务 activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 2.获取系统中正在运行的服务 runningList = activityManager.getRunningServices(30);//代表我们希望返

【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)

众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 [java] view plaincopyprint? PackageManager packageManager = this.getPackageManager(); List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0); 通过以上方法,可以得到手机中安装的所有应用程序,既包括了手动安装的apk包的信

讨论一下js获取响应中后台传回来的BigInteger类型的数字时,后几位会自动变为0的问题

后台返回的json:{"data":12345678912345678912} 在js中获取该data得到的值为:12345678912345680000 后经过实验发现,只有数字保持在17位以内(包括17位),js才能取到正确的值. 解决方法:后台返回json时,先将bigInteger的数字转为String类型,这样响应中的json就变为:{"data":"12345678912345678912"} js就能获取到正确的值了.

Oracle中已有数据的字段类型修改

创建测试表 create table t_person( id varchar2(200) primary key, name varchar2(200), address varchar2(200) ); 向测试表中插入数据 insert into t_person(id,name,address) values(sys_guid(),'zhangsan','beijing'); insert into t_person(id,name,address) values(sys_guid(),'

php批量检查域名是否已注册并获取注册域名的注册公司

一个小任务,给了一个包含了几千条域名的Excel,检测是否已经注册,注册的话获取注册公司,并获取对应网站是否能正常打开,最终以Excel文件呈现. 1.起初,想到的就是读取域名,通过http调用 xinnet或者是万网的 whois查询接口查询,而后将页面结果正则匹配Registrant:,registrant organization:,registrant name:字段,获取该行:后边的内容.这样的结果就是很乱,很多注册公司不用这三个字段,没有一个统一的标准来判定是否注册及注册公司. 2.

RegQueryValueEx检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值。

1VC声明 1 2 3 4 5 6 7 8 LONG RegQueryValueEx(     HKEY hKey,            // handle to key     LPCTSTR lpValueName,  // value name     LPDWORD lpReserved,   // reserved     LPDWORD lpType,       // type buffer     LPBYTE lpData,        // data buffer    

无法读取此系统上以前注册的服务器的列表。请在“已注册的服务器”窗口中重新注册您的服务器

环境: 服务器系统: 数据库版本:Microsoft SQL Server 2008 R2 错误提示如下图: 截图来自:点击打开链接 详细错误信息: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾. ************** 异常文本 ************** Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerException: 无法读取此系统上以前注册的服务器的列表.请在"已注册

【EF框架】另一个 SqlParameterCollection 中已包含 SqlParameter。

查询报表的时候需要通过两次查询取出数据. 第一次,用count(*)查出总数: 第二次,用rownumber分页取出想要的页内容: 为了防止sql注入,使用SqlParameter来传递参数 List<SqlParameter> paramsList = new List<SqlParameter>(); //参数列表 paramsList.Add(new SqlParameter("@schSno", schSno));//校区 StringBuilder w

获取手机中所有已安装的应用,并判断是否系统应用

//获取手机中所有已安装的应用,并判断是否系统应用 ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); //用来存储获取的应用信息数据,手机上安装的应用数据都存在appList里 List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);   for(int i = 0; i < packages.size(); i++