我正在玩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);
}
}
}
}
}
我知道我缺少一些基本的东西,但我不知道它是什么。我的谷歌搜索毫无结果。
答案 0 :(得分:0)
有一篇关于ef交易的MSDN文章。
http://msdn.microsoft.com/en-gb/library/vstudio/bb738523(v=vs.100).aspx