Entity Framework 4.1“Code First”SetInitializer 在 Database.Delete 之后不会再次调用

2023-11-25

首先尝试使用 EF 4.1 代码进行一些单元测试。我有我的实时数据库(SQL Server)和我的单元测试数据库(Sql CE)。在与 EF、Sql CE 4.0 和事务支持进行斗争(并失败)后,我决定运行测试的最简单方法是:

  1. 创建数据库
  2. 运行测试
  3. 删除数据库
  4. 冲洗并重复

我有我的 [Setup] 和 [TearDown] 功能:

[SetUp]
public void Init()
{
    System.Data.Entity.Database.SetInitializer(new MyTestContextInitializer());
    _dbContext = ContainerFactory.Container.GetInstance<IContext>();
    _testConnection = _dbContext.ConnectionString;
}

[TearDown]
public void Cleanup()
{
    _dbContext.Dispose();
    System.Data.Entity.Database.Delete(_testConnection);
}

问题是 System.Data.Entity.Database.SetInitializer 在第一次测试后不会调用 MyTestContextInitializer。

因此,第二个测试失败:

System.Data.EntityException: 底层提供程序在打开时失败。
----> System.Data.SqlServerCe.SqlCeException : 找不到数据库文件。 检查数据库路径

任何指针的 TIA


我通过手动调用“InitializeDatabase”解决了这个问题。就像这样:

   [SetUp]
    public void Init()
    {

        var initializer = new MyTestContextInitializer();
        System.Data.Entity.Database.SetInitializer(initializer);

        _dbContext = ContainerFactory.Container.GetInstance<IContext>();
        initializer.InitializeDatabase((MyTestContext)_dbContext);

        _testConnection = _dbContext.ConnectionString;
    }

    [TearDown]
    public void Cleanup()
    {
        System.Data.Entity.Database.Delete(_testConnection);

        _dbContext.Dispose();
    }

我认为这可能是 EF 4.1 RC 的一个错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Entity Framework 4.1“Code First”SetInitializer 在 Database.Delete 之后不会再次调用 的相关文章

随机推荐

  • asp.net在回发后动态添加用户控件保存值

    这是我的问题 我有一个用户控件 我希望允许用户使用按钮单击添加所需数量的实例 每次单击按钮时 我想将用户控件的另一个实例添加到面板中 第一次工作正常 但每次额外的回发都会删除所有添加的控件 我可以毫无问题地跟踪用户添加的用户控件的数量 但如
  • Firefox 4 onBeforeUnload 自定义消息

    在火狐中3 我能够编写一个自定义确认弹出窗口 window onbeforeunload function if someCondition return Your stream will be turned off 现在在火狐浏览器中4
  • Razor 视图引擎和 jQuery

    有谁知道如何强制 Razor View 引擎打印 foreach 循环下的精确行 代码如下 section head Content Scripts jquery 1 4 1 js gt Content Scripts jquery pro
  • SQL Server 中的日期时间问题

    我正在尝试对 MS SQL Server 中已设置的数据库执行 INSERT 该数据库服务器位于共享主机 godaddy 中 我想要实现的是将一篇文章存储到数据库中 但是每次我发布或预览该文章时 服务器都会抛出我的错误 SqlDateTim
  • 使用 ggplot2 绘制 Excel 图形

    我的公司想要在 R 中进行报告 他们希望尽可能保持 Excel 报告的相同 ggplot2 有没有办法保持 Excel 中俗气的 3D 外观 我想要制作一个如下所示的情节 我已经能够接近了 这是我到目前为止所拥有的 gender lt c
  • 优化字节对编码

    注意到字节对编码 BPE 大型文本压缩基准测试非常缺乏 我非常很快就做好了它的一个简单的字面实现 压缩率 考虑到没有进一步处理 例如没有霍夫曼或算术编码 出奇的好 然而 我这个微不足道的实现的运行时间并不那么出色 如何对此进行优化 是否可以
  • 如何在django上为每个用户创建一个模型(表)?

    我有一个模型 并希望系统的每个用户都有一个为自己保留的表 尊重这个模型 为了明确起见 想象一下 游戏 模型 我不希望只有一张桌子 游戏 但是有 foo games bar games foo bar 是系统的用户 这个怎么做 edit wh
  • 自定义 HTMLElement 的 connectCallback() 中的 textContent 为空

    内connectedCallback 我的自定义元素的方法textContent作为空字符串返回 本质上我的代码可以归结为以下内容 class MyComponent extends HTMLElement constructor supe
  • 如何解决“请确保该文件可访问并且它是有效的程序集或 COM 组件”?

    我正在 C 中使用 OpenCV 构建一个项目 它需要一个名为的 dll 文件cvextern dll 但是 当添加此文件作为参考时 会出现此消息 无法添加引用 cvextern dll 请确保该文件可访问并且它是有效的程序集或 COM 组
  • 如何从字符串中删除所有空格

    如何去除Python字符串中的所有空格 例如 我想要一个像这样的字符串strip my spaces将变成stripmyspaces 但我似乎无法做到这一点strip gt gt gt strip my spaces strip strip
  • 如何在单个 HTML 表单中提交多个值?

    所以我有一个 HTML 表单
  • 如何在QT中接收正确的UDP数据包?

    我正在尝试编写一个QT程序来接收UDP数据包 我正在尝试从Packet Sender软件接收 这是我的代码 socket new QUdpSocket this bool result socket gt bind QHostAddress
  • angularjs $http.get如何强制UTF-8编码

    我必须读取使用 utf 8 字符集编码的 JSON 文件我使用这个语法 http get resources negozi json header Content Type application json charset UTF 8 su
  • 将警告视为错误没有任何效果

    在 Visual Studio 的项目设置中 我已将 将警告视为错误 设置为 全部 警告级别设置为 4 我通过故意引入违反 CA1305 的代码来对此进行测试 但它成功构建 并重建 并返回警告 我所期望的是构建会失败并返回一个错误 我的理解
  • Permissions.askAsync 未按预期工作

    我在通知 Permissions askAsync 时遇到问题 const status await Permissions askAsync Permissions NOTIFICATIONS 当使用 Permissions askAsy
  • 如何处理指向通用接口的指针的 JPA 注释

    我有一个泛型类 它也是一个映射的超类 它有一个私有字段 该字段保存指向同一类型的另一个对象的指针 MappedSuperclass public abstract class MyClass
  • kotlin 中数据类的流畅方法

    我们熟悉在java和其他编程语言中调用方法的流畅接口 例如 Picasso with this load url into imageView 这是通过返回所需类型对象的 setter 方法实现的 public Picasso with C
  • 使用 python 进行 oauth 谷歌

    我对网络编程相当陌生 我想在这里从头开始 我试图在网上搜索 但最终完全困惑了 现在我想学习的是如何通过Python脚本验证Google帐户 任何人都可以向我提供代码片段或任何示例 预先非常感谢 在过去几周的几次失败尝试之后 我花了一整天的时
  • 模拟私有构造函数

    The Site课程是由外部团队向我提供的 并且有private构造函数 public class Site int id String brand private Site int id String brand this id id t
  • Entity Framework 4.1“Code First”SetInitializer 在 Database.Delete 之后不会再次调用

    首先尝试使用 EF 4 1 代码进行一些单元测试 我有我的实时数据库 SQL Server 和我的单元测试数据库 Sql CE 在与 EF Sql CE 4 0 和事务支持进行斗争 并失败 后 我决定运行测试的最简单方法是 创建数据库 运行