如何在单元测试项目中使用Entity Framework 5回滚更改

时间:2014-09-09 22:15:28

标签: c# entity-framework unit-testing visual-studio-2012 entity-framework-5

我正在玩Entity Framework,我有一个单元测试项目,我想要练习到目前为止我所做的事情。我想让它在完成后不会更新我的测试数据库。如果我在SQL中工作,我会创建一个事务,然后在最后回滚。

我怎么能在这里做同样的事情?

据我了解,context.SaveChanges();正在有效地写入数据库。如果我没有,那么在allCartTypes

分配后context.CarTypes.ToList()为空

以下是我的一个测试类的示例。

using System;
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Trains;
using System.Linq;

namespace TrainsTest
{
    [TestClass]
    public class TestCarType : TestBase
    {
        [TestMethod]
        public void TestCarTypeCreate_Success()
        {
            var tankerCarType = new CarType {Name = "Tanker"};
            var boxCarType = new CarType { Name = "Box" };
            using (var context = new TrainEntities())
            {
                context.CarTypes.Add(tankerCarType);
                context.CarTypes.Add(boxCarType);

                context.SaveChanges();

                var allCartTypes = context.CarTypes.ToList();
                foreach (var cartType in allCartTypes)
                {
                    Debug.WriteLine(cartType.CarTypeId + " - " + cartType.Name);
                }
            }
        }
    }
}

我知道我缺少一些基本的东西,但我不知道它是什么。我的谷歌搜索毫无结果。

1 个答案:

答案 0 :(得分:0)