我正在开发一个项目,我希望测试一些使用实体框架的类。在那个过程中,我创建了一个测试DbContext。
class FakeContext : DbContext, IDbContext
{
public IDbSet<UserAcc> UserAcc { set; get; }
public IDbSet<Movies> Movies { set; get; }
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
}
[TestClass]
public class EFStorageTest
{
private IStorageConnection _ef;
[TestMethod]
public void AddToContextTest()
{
_ef = new EFConnectionFactory().GetConnection<FakeContext>();
_ef.Add(new UserAcc());
_ef.SaveChanges();
Assert.AreEqual(1, _ef.Get<UserAcc>().Count());
}
}
当我尝试将一个实体添加到我的上下文中时,我认为它将保留在内存中,但它会被Visual Studio自动保存到某处。自动创建的数据库位于何处?
答案 0 :(得分:0)
默认情况下,EF在SQL Server express上创建数据库,其名称等于完整数据上下文类名。即在你的情况下它将是
server=.\SQLEXPRESS;database=Your.Namespace.FakeContext
BTW我不建议你在测试中使用真正的数据库,如果你没有进行验收测试 - 这是缓慢,脆弱和耗时的