如何通过反射加载所有 Entity Framework 4.1 实体配置实体?

2024-04-17

In my OnModelCreating我的数据上下文的方法目前正在手动映射所有实体配置映射类,例如:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new UserMap());
    // 20 or so mapping configuration below
}

我想通过使用反射来简化这个过程,所以我有以下代码:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        // Find all EntityTypeConfiguration classes in the assembly
        foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
            foreach (Type t in asm.GetTypes())
                if (t.IsDerivedFromOpenGenericType(typeof(EntityTypeConfiguration<>)))
                    modelBuilder.Configurations.Add(Activator.CreateInstance(t));   
    }

the IsDerivedFromOpenGenericType来自这个问题 https://stackoverflow.com/questions/6426949/how-can-i-use-reflection-to-return-all-classes-subclassing-from-a-generic-withou并且工作正常。

问题是这无法编译,因为Activator.CreateInstance(t)返回一个object,但模型构建者期望System.Data.Entity.ModelConfiguration.ComplexTypeConfiguration<TComplexType>.

通常当使用Activator类我只是将对象转换为我期望的类型t(或者我期望该类采取什么),但由于这是使用泛型,我不知道有什么方法可以做到这一点。

有人有什么想法吗?


我不知道为什么这个信息这么难找到(至少对我来说是这样),但是有一个更简单的方法可以详细地做到这一点here http://patrickdesjardins.com/blog/how-to-register-model-builder-without-having-to-manually-add-them-one-by-one.

public class MyDbContext : DbContext
{
  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    modelBuilder.Configurations.AddFromAssembly(Assembly.GetAssembly(GetType())); //Current Assembly
    base.OnModelCreating(modelBuilder);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过反射加载所有 Entity Framework 4.1 实体配置实体? 的相关文章

随机推荐

  • 未捕获的类型错误:无法读取未定义的属性“draw”

    for var i 0 i lt reduced length i var innerdata for var j 0 j lt days length j var rev 0 each reduced i data function ti
  • 如何替换 Google 云端硬盘中的文件?

    使用以下代码 该代码取自android 快速入门 如果您拍摄多张照片 此代码可以生成多个同名文件 如何修改才能保证同名文件被替换呢 public class MainActivity extends Activity implements
  • 带箭头的线图

    我有一个折线图 我想使用箭头而不是线条来绘制 也就是说 连续的点对之间的线应该是从第一个点到第二个点的箭头 我知道的arrow功能 但这似乎只做单个箭头 在我找到一种方法来尝试使用它来完成整个情节之前 是否有更好的方法来做到这一点 你可以这
  • TortoiseHg无法提交--“系统找不到指定的文件”

    我刚刚选择了 TortoiseHg 用于 Windows 上的分布式源代码控制 并将其安装在我的 C 驱动器上 然后我创建了一个存储库 位于 D projects 中 当我尝试提交更改时 它给了我错误 abort None 系统找不到 指定
  • 应用程序未安装在模拟器上:警告:打开音频输入失败

    我创建了一个 你好 项目 我没有更改 eclipse 生成的默认模板的任何内容 然后我运行了该应用程序 我没有收到任何错误 但是 该应用程序并未安装在模拟器上 环境 windows7 x64 jdk 7u7 windows x64 inst
  • 获取ASP.NET网站用户的MAC

    我正在寻找一种解决方案来查找使用 asp net 网站的用户的 MAC 号码 我知道你可以获得一个IP地址 不知道为什么 但它不会很复杂 但是我可以找出具有该IP的MAC地址吗 编辑 我的意思是在 NET中以编程方式 而不是手动 IP 地址
  • Godoc 文档不输出列表

    在整个项目中 我负责测试和记录 为函数和方法创建了文档 格式如下 CheckPermissionArray checks that values is an array that contains the expectedValue Par
  • Android 模拟器无法在 Eclipse 中启动

    我刚刚安装了整个 shebang 以便在 Eclipse 中开发 Android 应用程序 我运行的是 64 位 gentoo 一切似乎都很顺利 我创建了开发组的 hello world 示例 package com nfshost fly
  • 如何调整 svg 的大小(使用蜡染)并显示它?

    我有一个 100x100 像素的 svg 文件 例如 我正在使用蜡染 如果我做一个 JSVGCanvas svg new JSVGCanvas svg setSize 10 10 它只会显示图片的这一部分 而不显示调整大小的图像 你知道如何
  • 如何在 Core Data 中进行 NSManagedObject 的深度复制

    我正在尝试复制核心数据中现有的 NSManagedObject 和相关子对象 我似乎找不到一个简单的方法来做到这一点 我有一个从核心数据数据库填充的 NSArrayController 我想获取 SelectionIndex 处的对象并进行
  • 从 Zend Framework 2 中的路由获取 $_GET 参数

    Zend Framework 1 有一种非常简单的方法来解析 URL 路由并在 GET 超全局中设置找到的参数以便于访问 当然 您可以在控制器内使用 gt getParam something 但如果在 URL 中找到参数 则它是also可
  • 独立脚本可以为绑定到电子表格的另一个脚本创建触发器吗?

    我正在尝试为电子表格绑定脚本创建一个可安装的 onEdit 触发器 我想使用单独的独立脚本以编程方式执行此操作 根据文档看来这应该是可能的 请注意 与简单的 onOpen 触发器不同 可安装触发器的脚本不需要绑定到电子表格 要从独立脚本创建
  • 今天的google doodle世界博览会是如何实现的? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我想知道它
  • Javascript,CSS:将变换原点更改为手势更改的中心点

    我想将变换原点更改为捏合手势的中心点 此工作代码 safariDevSample 应用缩放和旋转而不改变transform origin window angle 0 global to store data for later reset
  • ValidationError:选项对象无效。复制插件已使用与 API 架构不匹配的选项对象进行初始化

    由于存在漏洞 我刚刚更新了 package json 中的一些包 所有漏洞均已修复 但当我执行 npm run 时出现以下错误 复制插件包在我的漏洞修复过程中得到了更新 我尝试从旧提交中复制 package json 并重新安装所有软件包
  • 对 F# 联合类型列表进行操作

    这是我的问题的延续F 联合类型列表 https stackoverflow com questions 13770911 f list of union types 感谢有用的反馈 我能够创建一个列表Reports with Report要
  • waveOutWrite 和 waveOutGetPosition 死锁问题

    我正在开发一个使用连续播放音频的应用程序waveOut API来自winmm dll 该应用程序使用 leapfrog 缓冲区 它基本上是一堆转储到音频队列中的样本数组 Windows 按顺序无缝播放它们 并且当每个缓冲区完成时 Windo
  • 如何在 2.0 和 1.x 之间切换 TensorFlow 版本?

    有没有办法切换tensorflow的版本 当我使用conda安装tensorflow 2 0时 它更新了很多东西 甚至是python 跑步时conda list它显示两个版本 张量流2 0 0 mkl py37h66b46cc 0张量流 1
  • 测试 AWS Elastic Beanstalk 扩展

    我已经在弹性豆茎中设置了一个服务器 需要时 应该将实例数量从 1 增加到最多 4 但是 我有一个潜在的怀疑 当它启动一个新实例时 该实例将无法正确配置 因为我无法安装用于 Python 的 mySQL 模块 无需 ssh 进入实例并手动设置
  • 如何通过反射加载所有 Entity Framework 4.1 实体配置实体?

    In my OnModelCreating我的数据上下文的方法目前正在手动映射所有实体配置映射类 例如 protected override void OnModelCreating DbModelBuilder modelBuilder