小编S. *_*ter的帖子

不能在用户事务中使用 DROP DATABASE 语句

不确定这个问题是否属于这里,但我希望有人能帮助我。

我已经对数据库进行了集成测试(使用 mssql localDB)。我希望每个测试都使用它自己的数据独立运行 - 我想在每个测试运行之前用我的假数据重新植入数据库。我试图用事务来实现它,但没有成功。这是我尝试将其关闭的方法:

public class TestDbInitializer : DropCreateAlways<MyContext>()
{
    public static List<Item> Items;

    public override Seed(DbContext context)
    {
        Items = new List<Item>();

        // Adding items
        // .. 

        Items.ForEach(x => context.Add(x));

        context.SaveChanges();
    }
}


public class BaseTransactionsTests
{
    private TransactionScope _scope

    [TestInitialize]
    public void Initialize()
    {
        _scope = new TransactionScope();
    }

    [TestCleanup]
    public void Cleanup()
    {
        _scope.Dispose();
    }
}

[TestClass]
public class IntegrationTests : BaseTransactionsTests

private IDependenciesContainer _container;

public static void AssemblyInit(TestContext context)
{
    Database.SetInitializer(new TestDbInitializer());

    _container = …
Run Code Online (Sandbox Code Playgroud)

sql-server testing c# unit-test sql-server-localdb

4
推荐指数
1
解决办法
4080
查看次数

只有一个常量值的表?

我首先使用 C# 实体框架代码。

我对数据库的了解几乎一无所有。我不知道这是常见的还是好的做法,所以我想问你们我应该怎么做。

假设我有一张字母表和一张车站表。

我开发了一个应用程序,可以将信件从一个站发送到其他站。每封信都可以发送到不同的站点——这是一种多对多的关系。

发送的每封信都与一个站相关联 - 信的源站(信不能发送到它自己的源站,等等)。

每个数据库实例代表一个站。

在应用程序启动时,我知道哪个站是我的源站,并希望将该信息保存在数据库中。

我应该如何保存哪个站是源站?我是否应该在每一行的站台表中都有一个标志,指示它是否是当前实例站?这对我来说听起来很糟糕。

有没有办法让表格只有 1 个值?例如,它将被称为 InstanceStation,它将只包含一行和一列 - StationId?这是一个好习惯吗?

我尽量说清楚,希望我的情况清楚。

database-design sql-server entity-framework c# sql-server-localdb

3
推荐指数
1
解决办法
1192
查看次数