实体框架上下文失败,并出现 ReflectionTypeLoadException

本文关键字:ReflectionTypeLoadException 框架 上下文 失败 实体 | 更新日期: 2023-09-27 18:30:46

>我有一个简单的实体框架代码第一上下文,用于在事件从总线到达时持久化事件。上下文是:

public class MyContext : DbContext
{
    public MyContext (DbConnection connection)
        : base(connection, false)
    {
        Database.SetInitializer<MyContext>(null);
        Configuration.AutoDetectChangesEnabled = true;
    }
    public DbSet<MyEvent> MyEvents { get; set; }
}

我的事件在哪里

public class MyEvent
{
    public int Id { get; set; }
    public string Source { get; set; }
    public string MessageId { get; set; }
    public DateTime EventDate { get; set; }
}

现在,当我尝试访问上下文时。MyEvents 集合 我得到一个 ReflectionTypeLoadException

无法加载一个或多个请求的类型。检索 LoaderExceptions 属性以获取更多信息。

与加载器异常

"程序集'YYYY'中类型'XXXX'中的方法'ToCombinedRows'没有实现。"

现在这真的很奇怪,因为类型 XXXX 与要持久化的对象完全无关,并且没有理由使用此名称的方法。

所有对象都在同一程序集中定义,并且我从一个集成测试项目运行,引用 CopyLocal 设置为 true。有谁知道如何让我的上下文与数据库对话?

实体框架上下文失败,并出现 ReflectionTypeLoadException

好的,找到了问题。

我正在使用 ReSharper 运行集成测试,它将程序集加载到临时位置,实体框架无法计算出该位置的类型(当我从控制台应用程序运行时很好)。由于我不知道的原因,当我将上下文对象拆分为它们自己的程序集时,实体框架运行良好。因此,项目中的引用不是问题,只是将这些引用加载到测试工具中的问题。

相关文章:
  • 没有找到相关文章