本文整理汇总了C#中System.Data.Entity.Migrations.DbMigrator.ExecuteSql方法的典型用法代码示例。如果您正苦于以下问题:C# DbMigrator.ExecuteSql方法的具体用法?C# DbMigrator.ExecuteSql怎么用?C# DbMigrator.ExecuteSql使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Migrations.DbMigrator
的用法示例。
在下文中一共展示了DbMigrator.ExecuteSql方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteSql_with_transactions_suppressed_dispatches_commands_to_interceptors
public void ExecuteSql_with_transactions_suppressed_dispatches_commands_to_interceptors()
{
var mockCommand = new Mock<DbCommand>();
mockCommand.Setup(m => m.ExecuteNonQuery()).Returns(2013);
var mockConnection = new Mock<DbConnection>();
mockConnection.Protected().Setup<DbCommand>("CreateDbCommand").Returns(mockCommand.Object);
var mockTransaction = new Mock<DbTransaction>();
mockTransaction.Protected().Setup<DbConnection>("DbConnection").Returns(mockConnection.Object);
var mockFactory = new Mock<DbProviderFactory>();
mockFactory.Setup(m => m.CreateConnection()).Returns(mockConnection.Object);
var objectContext = new ObjectContext();
var mockInternalContext = new Mock<InternalContextForMock>();
mockInternalContext.Setup(m => m.ObjectContext).Returns(objectContext);
var context = mockInternalContext.Object.Owner;
objectContext.InterceptionContext = objectContext.InterceptionContext.WithDbContext(context);
var migrator = new DbMigrator(context, mockFactory.Object);
var statement = new MigrationStatement
{
Sql = "Some Sql",
SuppressTransaction = true
};
var mockInterceptor = new Mock<DbInterceptor> { CallBase = true };
Interception.AddInterceptor(mockInterceptor.Object);
try
{
migrator.ExecuteSql(mockTransaction.Object, statement);
}
finally
{
Interception.RemoveInterceptor(mockInterceptor.Object);
}
mockInterceptor.Verify(m => m.NonQueryExecuting(
mockCommand.Object,
It.Is<DbInterceptionContext>(c => c.DbContexts.Contains(context))));
mockInterceptor.Verify(m => m.NonQueryExecuted(
mockCommand.Object,
2013,
It.Is<DbInterceptionContext>(c => c.DbContexts.Contains(context))));
}
示例2: ExecuteSql_dispatches_commands_to_interceptors
public void ExecuteSql_dispatches_commands_to_interceptors()
{
var mockCommand = new Mock<DbCommand>();
mockCommand.Setup(m => m.ExecuteNonQuery()).Returns(2013);
var mockConnection = new Mock<DbConnection>();
mockConnection.Protected().Setup<DbCommand>("CreateDbCommand").Returns(mockCommand.Object);
var mockTransaction = new Mock<DbTransaction>();
mockTransaction.Protected().Setup<DbConnection>("DbConnection").Returns(mockConnection.Object);
var migrator = new DbMigrator();
var statement = new MigrationStatement
{
Sql = "Some Sql"
};
var mockInterceptor = new Mock<DbInterceptor> { CallBase = true };
Interception.AddInterceptor(mockInterceptor.Object);
try
{
migrator.ExecuteSql(mockTransaction.Object, statement);
}
finally
{
Interception.RemoveInterceptor(mockInterceptor.Object);
}
mockInterceptor.Verify(m => m.NonQueryExecuting(mockCommand.Object, It.IsAny<DbInterceptionContext>()));
mockInterceptor.Verify(m => m.NonQueryExecuted(mockCommand.Object, 2013, It.IsAny<DbInterceptionContext>()));
}