Базовый поставщик не смог открыть.
Без транзакции все работает нормально.
В настоящее время у меня есть код:
Код: Выделить всё
[TestMethod]
public void Test1()
{
var mockSet = GetDbMock();
var mockContext = new Mock();
mockContext.Setup(m => m.Repository).Returns(mockSet.Object);
var service = new MyService(mockContext.Object);
service.SaveRepository(GetRepositoryData().First());
mockSet.Verify(m => m.Remove(It.IsAny()), Times.Once());
mockSet.Verify(m => m.Add(It.IsAny()), Times.Once());
mockContext.Verify(m => m.SaveChanges(), Times.Once());
}
// gets the DbSet mock with one existing item
private Mock GetDbMock()
{
var data = GetRepositoryData();
var mockSet = new Mock();
mockSet.As().Setup(m => m.Provider).Returns(data.Provider);
// skipped for brevity
return mockSet;
}
Код: Выделить всё
private readonly DataContext _context;
public MyService(DataContext ctx)
{
_context = ctx;
}
public void SaveRepositories(Repository repo)
{
using (_context)
{
// Here the transaction creation fails
using (var transaction = _context.Database.BeginTransaction())
{
DeleteExistingEntries(repo.Id);
AddRepositories(repo);
_context.SaveChanges();
transaction.Commit();
}
}
}
Код: Выделить всё
var mockTransaction = new Mock();
mockContext.Setup(x => x.Database.BeginTransaction()).Returns(mockTransaction.Object);
Неверная настройка на невиртуальный (переопределяемый в VB) член: conn =>
conn.Database.BeginTransaction()
Есть идеи, как решить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/325 ... ransaction
Мобильная версия