本文整理汇总了C#中System.Data.Entity.Core.EntityClient.EntityConnection.UseStoreTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# EntityConnection.UseStoreTransaction方法的具体用法?C# EntityConnection.UseStoreTransaction怎么用?C# EntityConnection.UseStoreTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.EntityClient.EntityConnection
的用法示例。
在下文中一共展示了EntityConnection.UseStoreTransaction方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateNew
public virtual EntityConnectionProxy CreateNew(DbConnection storeConnection)
{
var clonedConnection = new EntityConnection(_entityConnection.GetMetadataWorkspace(), storeConnection);
var currentTransaction = _entityConnection.CurrentTransaction;
if (currentTransaction != null
&& DbInterception.Dispatch.Transaction.GetConnection(
currentTransaction.StoreTransaction, _entityConnection.InterceptionContext) == storeConnection)
{
clonedConnection.UseStoreTransaction(currentTransaction.StoreTransaction);
}
return new EntityConnectionProxy(clonedConnection);
}
示例2: Should_use_interception
public void Should_use_interception()
{
var mockWorkspace = CreateMetadataWorkspaceMock();
var dbConnectionMock = new Mock<DbConnection>(MockBehavior.Strict);
dbConnectionMock.Setup(m => m.State).Returns(ConnectionState.Open);
dbConnectionMock.Setup(m => m.ConnectionTimeout).Returns(666);
dbConnectionMock.Setup(m => m.ToString()).Returns("Mock Connection");
dbConnectionMock.Protected()
.Setup<DbProviderFactory>("DbProviderFactory")
.Returns(GenericProviderFactory<DbProviderFactory>.Instance);
var transactionMock = new Mock<DbTransaction>();
transactionMock.Protected().Setup<DbConnection>("DbConnection").Returns(dbConnectionMock.Object);
var dbConnectionInterceptorMock = new Mock<IDbConnectionInterceptor>();
DbInterception.Add(dbConnectionInterceptorMock.Object);
var transactionInterceptorMock = new Mock<IDbTransactionInterceptor>();
DbInterception.Add(transactionInterceptorMock.Object);
try
{
var connection = new EntityConnection(mockWorkspace.Object, dbConnectionMock.Object, false, true);
connection.UseStoreTransaction(transactionMock.Object);
Assert.Same(transactionMock.Object, connection.CurrentTransaction.StoreTransaction);
}
finally
{
DbInterception.Remove(dbConnectionInterceptorMock.Object);
DbInterception.Remove(transactionInterceptorMock.Object);
}
dbConnectionInterceptorMock.Verify(
m => m.StateGetting(It.IsAny<DbConnection>(), It.IsAny<DbConnectionInterceptionContext<ConnectionState>>()),
Times.Once());
dbConnectionInterceptorMock.Verify(
m => m.StateGot(It.IsAny<DbConnection>(), It.IsAny<DbConnectionInterceptionContext<ConnectionState>>()),
Times.Once());
dbConnectionMock.Verify(m => m.State, Times.Once());
transactionInterceptorMock.Verify(
m => m.ConnectionGetting(It.IsAny<DbTransaction>(), It.IsAny<DbTransactionInterceptionContext<DbConnection>>()),
Times.Exactly(2));
transactionInterceptorMock.Verify(
m => m.ConnectionGot(It.IsAny<DbTransaction>(), It.IsAny<DbTransactionInterceptionContext<DbConnection>>()),
Times.Exactly(2));
transactionMock.Protected().Verify<DbConnection>("DbConnection",Times.Exactly(2));
}