本文整理汇总了C#中EntitySpaces.Interfaces.esTransactionScope类的典型用法代码示例。如果您正苦于以下问题:C# esTransactionScope类的具体用法?C# esTransactionScope怎么用?C# esTransactionScope使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
esTransactionScope类属于EntitySpaces.Interfaces命名空间,在下文中一共展示了esTransactionScope类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PgDataTypeTest
public void PgDataTypeTest()
{
DateTime testTime = Convert.ToDateTime("0001-01-01 01:23:45.678");
PgDataTypes datatypeTest = new PgDataTypes();
switch (datatypeTest.es.Connection.ProviderSignature.DataProviderName)
{
case "EntitySpaces.Npgsql2Provider":
using (esTransactionScope scope = new esTransactionScope())
{
datatypeTest.TimeType = testTime;
datatypeTest.Save();
long? tempKey = datatypeTest.Id;
datatypeTest = new PgDataTypes();
Assert.IsTrue(datatypeTest.LoadByPrimaryKey(tempKey.Value));
Assert.IsTrue(datatypeTest.TimeType.HasValue);
Assert.AreEqual(datatypeTest.TimeType.Value, testTime);
datatypeTest.MarkAsDeleted();
datatypeTest.Save();
}
break;
default:
Assert.Ignore("PostgreSQL only");
break;
}
}
示例2: SetGuidPrimaryKey
public void SetGuidPrimaryKey()
{
GuidTest dataTest = new GuidTest();
dataTest.es.Connection.Name = "GuidTest";
switch (dataTest.es.Connection.ProviderMetadataKey)
{
case "esSqlCe":
case "esSqlCe4":
using (esTransactionScope scope = new esTransactionScope())
{
string testGuid = "b3883c65-ff94-47c4-8b0c-76896bedd45a";
dataTest = new GuidTest();
dataTest.es.Connection.Name = "GuidTest";
dataTest.GuidKey = new Guid(testGuid);
dataTest.Save();
Guid? tempKey = dataTest.GuidKey;
dataTest.MarkAsDeleted();
dataTest.Save();
Assert.AreEqual(testGuid, tempKey.Value.ToString());
}
break;
default:
Assert.Ignore("SqlCe only");
break;
}
}
示例3: ConcurrencyOnUpdate
public void ConcurrencyOnUpdate()
{
ComputedTestCollection collection = new ComputedTestCollection();
int testId = 0;
switch (collection.es.Connection.ProviderSignature.DataProviderName)
{
case "EntitySpaces.SybaseSqlAnywhereProvider":
try
{
using (esTransactionScope scope = new esTransactionScope())
{
// Setup
ComputedTest entity = new ComputedTest();
entity.Save();
testId = entity.Id.Value;
// Test
entity = new ComputedTest();
entity.LoadByPrimaryKey(testId);
entity.str().SomeDate = "2007-01-01";
ComputedTest entity2 = new ComputedTest();
entity2.LoadByPrimaryKey(testId);
entity2.str().SomeDate = "1999-12-31";
entity.Save();
entity2.Save();
Assert.Fail("Concurrency Exception not thrown.");
}
}
catch (EntitySpaces.Interfaces.esConcurrencyException cex)
{
string err = cex.InnerException.Message.Substring(0, 11);
Assert.AreEqual("Error", cex.Message.Substring(0, 5));
Assert.AreEqual("Concurrency", err);
}
finally
{
ComputedTest entity = new ComputedTest();
if (entity.LoadByPrimaryKey(testId))
{
entity.MarkAsDeleted();
entity.Save();
}
}
break;
default:
Assert.Ignore("Sybase only.");
break;
}
}
示例4: SaveComposite
public void SaveComposite()
{
using (esTransactionScope scope = new esTransactionScope())
{
OrderItemCollection coll = new OrderItemCollection();
coll.es.Connection.Name = "ForeignKeyTest";
OrderItem entity = coll.AddNew();
entity.OrderID = 9;
entity.ProductID = 1;
entity.UnitPrice = 1000;
entity.Quantity = 1000;
entity = coll.AddNew();
entity.OrderID = 9;
entity.ProductID = 2;
entity.UnitPrice = 1000;
entity.Quantity = 1000;
entity = coll.AddNew();
entity.OrderID = 9;
entity.ProductID = 3;
entity.UnitPrice = 1000;
entity.Quantity = 1000;
coll.Save();
coll = new OrderItemCollection();
coll.es.Connection.Name = "ForeignKeyTest";
coll.Query.Where(coll.Query.OrderID == 9);
Assert.IsTrue(coll.Query.Load());
Assert.AreEqual(3, coll.Count);
// Clean up
coll.MarkAllAsDeleted();
coll.Save();
coll = new OrderItemCollection();
coll.es.Connection.Name = "ForeignKeyTest";
coll.Query.Where(coll.Query.OrderID == 9);
Assert.IsFalse(coll.Query.Load());
coll = new OrderItemCollection();
coll.es.Connection.Name = "ForeignKeyTest";
Assert.IsTrue(coll.LoadAll());
Assert.AreEqual(15, coll.Count);
}
}
示例5: MySQLNumericTypeTest
public void MySQLNumericTypeTest()
{
MysqltypetestCollection datatypeTestColl = new MysqltypetestCollection();
Mysqltypetest datatypeTest = new Mysqltypetest();
// There is a bug in the 1.0.7 Connector/Net for unsigned types.
// It is fixed in 5.0.3.
switch (datatypeTestColl.es.Connection.ProviderSignature.DataProviderName)
{
case "EntitySpaces.MySqlClientProvider":
using (esTransactionScope scope = new esTransactionScope())
{
datatypeTest.BigIntType = -1;
datatypeTest.BigIntUType = 1;
datatypeTest.DblType = -1;
datatypeTest.DblUType = 1;
datatypeTest.DecType = (decimal)(-1.5);
datatypeTest.DecUType = (decimal)(1.5);
datatypeTest.FloatType = (float)(-1.5);
datatypeTest.FloatUType = (float)(1.5);
datatypeTest.IntType = -1;
datatypeTest.IntUType = 1;
datatypeTest.MedIntType = -1;
datatypeTest.MedIntUType = 1;
datatypeTest.NumType = (decimal)(-1.5);
datatypeTest.NumUType = (decimal)(1.5);
datatypeTest.RealType = -1.5;
datatypeTest.RealUType = 1.5;
datatypeTest.SmallIntType = -1;
datatypeTest.SmallIntUType = 1;
datatypeTest.TinyIntType = (sbyte)(1);
datatypeTest.TinyIntUType = Convert.ToByte(1);
datatypeTest.Save();
int? tempKey = datatypeTest.Id;
Assert.IsTrue(datatypeTest.LoadByPrimaryKey(tempKey.Value));
datatypeTest.MarkAsDeleted();
datatypeTest.Save();
}
break;
default:
Assert.Ignore("MySQL only");
break;
}
}
示例6: TestSaveWithAutoKey
public void TestSaveWithAutoKey()
{
int terrKey = -1;
Territory terr = new Territory();
terr.es.Connection.Name = "ForeignKeyTest";
TerritoryEx terrEx = new TerritoryEx();
terrEx.es.Connection.Name = "ForeignKeyTest";
try
{
using (esTransactionScope scope = new esTransactionScope())
{
terr.Description = "Some New Territory";
terrEx = terr.TerritoryEx;
terrEx.Notes = "Test Group";
terr.Save();
terrKey = terr.TerritoryID.Value;
Assert.IsTrue(terr.TerritoryEx.es.HasData);
Assert.AreEqual(terr.TerritoryID.Value, terrEx.TerritoryID.Value);
terr = new Territory();
terr.es.Connection.Name = "ForeignKeyTest";
Assert.IsTrue(terr.LoadByPrimaryKey(terrKey));
Assert.IsTrue(terr.TerritoryEx.es.HasData);
}
}
finally
{
// Clean up
terr = new Territory();
terr.es.Connection.Name = "ForeignKeyTest";
if (terr.LoadByPrimaryKey(terrKey))
{
terrEx = terr.TerritoryEx;
terrEx.MarkAsDeleted();
terr.MarkAsDeleted();
terr.Save();
}
}
}
示例7: TestTransactions
public void TestTransactions()
{
switch (aggTest.es.Connection.Name)
{
case "SQLStoredProcEnterprise":
case "SQLDynamicEnterprise":
case "ORACLEStoredProcEnterprise":
case "ORACLEDynamicEnterprise":
case "VistaDBDynamic":
Assert.Ignore("Using esTransactionScope only");
break;
default:
int tempId1 = 0;
int tempId2 = 0;
aggTest = new AggregateTest();
AggregateTest aggTest2 = new AggregateTest();
using (esTransactionScope scope = new esTransactionScope())
{
aggTest.Save();
tempId1 = aggTest.Id.Value;
aggTest2.Save();
tempId2 = aggTest2.Id.Value;
scope.Complete();
}
aggTest = new AggregateTest();
Assert.IsTrue(aggTest.LoadByPrimaryKey(tempId1));
aggTest.MarkAsDeleted();
aggTest.Save();
aggTest = new AggregateTest();
Assert.IsTrue(aggTest.LoadByPrimaryKey(tempId2));
aggTest.MarkAsDeleted();
aggTest.Save();
break;
}
}
示例8: TestDateTime
public void TestDateTime()
{
int testId = -1;
AggregateTestCollection aggTestColl = new AggregateTestCollection();
AggregateTest test = new AggregateTest();
try
{
using (EntitySpaces.Interfaces.esTransactionScope scope =
new EntitySpaces.Interfaces.esTransactionScope())
{
aggTestColl.Query.Load();
aggTestColl.Filter = aggTestColl.AsQueryable().OrderBy(s => s.Id);
test = (AggregateTest)aggTestColl[0];
DateTime date = test.HireDate.Value;
Assert.AreEqual(Convert.ToDateTime("02/16/2000 05:59:31"), date);
test = new AggregateTest();
test.HireDate = Convert.ToDateTime("12/31/9999");
test.Save();
testId = test.Id.Value;
test = new AggregateTest();
Assert.IsTrue(test.LoadByPrimaryKey(testId));
Assert.AreEqual(Convert.ToDateTime("12/31/9999"), test.HireDate.Value);
test.MarkAsDeleted();
test.Save();
}
}
finally
{
// Clean up
test = new AggregateTest();
if (test.LoadByPrimaryKey(testId))
{
test.MarkAsDeleted();
test.Save();
}
}
}
示例9: DataTypeVarCharMax
public void DataTypeVarCharMax()
{
SqlServerTypeTest dataTest = new SqlServerTypeTest();
switch (dataTest.es.Connection.ProviderSignature.DataProviderName)
{
case "EntitySpaces.SqlClientProvider":
using (esTransactionScope scope = new esTransactionScope())
{
dataTest = new SqlServerTypeTest();
Assert.AreEqual(0, dataTest.es.ModifiedColumns.Count, "Count1");
dataTest.VarCharMaxType = "Test";
Assert.AreEqual(1, dataTest.es.ModifiedColumns.Count, "Count2");
dataTest.Save();
long tempKey = dataTest.Id.Value;
dataTest = new SqlServerTypeTest();
Assert.IsTrue(dataTest.LoadByPrimaryKey(tempKey));
Assert.AreEqual("Test", dataTest.VarCharMaxType);
Assert.AreEqual(0, dataTest.es.ModifiedColumns.Count, "Count3");
dataTest.VarCharMaxType = dataTest.VarCharMaxType;
Assert.AreEqual(0, dataTest.es.ModifiedColumns.Count, "Count4");
// Clean up
dataTest.MarkAsDeleted();
dataTest.Save();
}
break;
default:
Assert.Ignore("Sql Server only");
break;
}
}
示例10: CommonInit
/// <summary>
/// This is the common constructor logic, tx is "this" from the constructor
/// </summary>
/// <param name="tx"></param>
static protected void CommonInit(esTransactionScope tx)
{
Stack<esTransactionScope> stack;
// See if our stack is already created (there is only one per thread)
object obj = Thread.GetData(txSlot);
if (obj == null)
{
stack = new Stack<esTransactionScope>();
Thread.SetData(txSlot, stack);
}
else
{
stack = (Stack<esTransactionScope>)obj;
}
// If this transaction is required we need to set it's root
if (tx.option == esTransactionScopeOption.Required)
{
foreach (esTransactionScope esTrans in stack)
{
// The root can be either a Requires or RequiresNew, and a root always points to
// itself, therefore, as long as it's not a Suppress and it's pointing to itself
// then we know this the next root up on the stack
if (esTrans.option != esTransactionScopeOption.Suppress && esTrans == esTrans.root)
{
tx.root = esTrans;
break;
}
}
}
// If we didn't find a root, then we are by definition the root
if (tx.root == null)
{
tx.root = tx;
tx.transactions = new Dictionary<string, Transaction>();
}
stack.Push(tx);
}
示例11: SaveDynamicCollection_InsertsUpdates
private static DataTable SaveDynamicCollection_InsertsUpdates(esDataRequest request)
{
DataTable dataTable = CreateDataTable(request);
using (esTransactionScope scope = new esTransactionScope())
{
using (SADataAdapter da = new SADataAdapter())
{
da.AcceptChangesDuringUpdate = false;
da.ContinueUpdateOnError = request.ContinueUpdateOnError;
SACommand cmd = null;
if (!request.IgnoreComputedColumns)
{
da.RowUpdated += new SARowUpdatedEventHandler(OnRowUpdated);
}
foreach (esEntitySavePacket packet in request.CollectionSavePacket)
{
if (packet.RowState != esDataRowState.Added && packet.RowState != esDataRowState.Modified) continue;
DataRow row = dataTable.NewRow();
dataTable.Rows.Add(row);
switch (packet.RowState)
{
case esDataRowState.Added:
cmd = da.InsertCommand = Shared.BuildDynamicInsertCommand(request, packet.ModifiedColumns);
SetModifiedValues(request, packet, row);
break;
case esDataRowState.Modified:
cmd = da.UpdateCommand = Shared.BuildDynamicUpdateCommand(request, packet.ModifiedColumns);
SetOriginalValues(request, packet, row, false);
SetModifiedValues(request, packet, row);
row.AcceptChanges();
row.SetModified();
break;
}
request.Properties["esDataRequest"] = request;
request.Properties["esEntityData"] = packet;
dataTable.ExtendedProperties["props"] = request.Properties;
DataRow[] singleRow = new DataRow[1];
singleRow[0] = row;
try
{
esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);
#region Profiling
if (sTraceHandler != null)
{
using (esTraceArguments esTrace = new esTraceArguments(request, cmd, packet, "SaveCollectionDynamic", System.Environment.StackTrace))
{
try
{
da.Update(singleRow);
}
catch (Exception ex)
{
esTrace.Exception = ex.Message;
throw;
}
}
}
else
#endregion Profiling
{
da.Update(singleRow);
}
if (row.HasErrors)
{
request.FireOnError(packet, row.RowError);
}
}
finally
{
esTransactionScope.DeEnlist(cmd);
dataTable.Rows.Clear();
}
}
}
scope.Complete();
}
return dataTable;
}
示例12: SaveDynamicCollection_Deletes
static private DataTable SaveDynamicCollection_Deletes(esDataRequest request)
{
SACommand cmd = null;
DataTable dataTable = CreateDataTable(request);
using (esTransactionScope scope = new esTransactionScope())
{
using (SADataAdapter da = new SADataAdapter())
{
da.AcceptChangesDuringUpdate = false;
da.ContinueUpdateOnError = request.ContinueUpdateOnError;
try
{
da.ContinueUpdateOnError = request.ContinueUpdateOnError;
cmd = da.DeleteCommand = Shared.BuildDynamicDeleteCommand(request, request.CollectionSavePacket[0]);
esTransactionScope.Enlist(cmd, request.ConnectionString, CreateIDbConnectionDelegate);
DataRow[] singleRow = new DataRow[1];
// Delete each record
foreach (esEntitySavePacket packet in request.CollectionSavePacket)
{
DataRow row = dataTable.NewRow();
dataTable.Rows.Add(row);
SetOriginalValues(request, packet, row, true);
row.AcceptChanges();
row.Delete();
singleRow[0] = row;
da.Update(singleRow);
if (row.HasErrors)
{
request.FireOnError(packet, row.RowError);
}
dataTable.Rows.Clear(); // ADO.NET won't let us reuse the same DataRow
}
}
finally
{
esTransactionScope.DeEnlist(cmd);
}
}
scope.Complete();
}
return request.Table;
}
示例13: NativeMaterializeTest
protected override void NativeMaterializeTest(int count)
{
using (var ts = new esTransactionScope())
{
var simplests = new SimplestsCollection();
int i = 0;
while (i < count)
{
simplests.LoadAll();
foreach (var o in simplests)
if (++i >= count)
break;
}
ts.Complete();
}
}
示例14: NativeQueryTest
protected override void NativeQueryTest(int count)
{
using (var ts = new esTransactionScope())
{
for (int i = 0; i < count; i++)
{
var simplests = new SimplestsCollection();
var id = i % InstanceCount;
simplests.Query.Where(simplests.Query.Id == id);
if (simplests.Query.Load())
foreach (var simplest in simplests)
{
// Doing nothing, just enumerate
}
}
ts.Complete();
}
}
示例15: ClientSideAliased
public void ClientSideAliased()
{
int keyId = -1;
CustomClientAliasedCollection coll = new CustomClientAliasedCollection();
switch (coll.es.Connection.ProviderSignature.DataProviderName)
{
case "EntitySpaces.EffiProzProvider":
Assert.Ignore("Not implemented");
break;
default:
using (esTransactionScope scope = new esTransactionScope())
{
// Setup
CustomClientAliased entity = new CustomClientAliased();
entity = new CustomClientAliased();
entity.FirstName = "Test";
entity.LastName = "One";
// Insert
entity.Save();
keyId = entity.AutoKey.Value;
Assert.AreEqual(entity.FirstName, "Test");
Assert.AreEqual(entity.LastName, "One");
Assert.AreEqual(entity.Age.Value, 40);
Assert.AreEqual(entity.DateAddedAlias.Value.Day, DateTime.UtcNow.Day);
Assert.AreEqual(entity.DateModified.Value.Day, DateTime.UtcNow.Day);
Assert.AreEqual(entity.AddedBy, "AddedBy Client User");
Assert.AreEqual(entity.ModifiedByAlias, "ModifiedBy Client User");
Assert.AreEqual(entity.EsVersion.Value, 1);
// Update
entity = new CustomClientAliased();
entity.LoadByPrimaryKey(keyId);
Assert.AreEqual(entity.FirstName, "Test");
Assert.AreEqual(entity.LastName, "One");
Assert.AreEqual(entity.Age.Value, 40);
Assert.AreEqual(entity.DateAddedAlias.Value.Day, DateTime.UtcNow.Day);
Assert.AreEqual(entity.DateModified.Value.Day, DateTime.UtcNow.Day);
Assert.AreEqual(entity.AddedBy, "AddedBy Client User");
Assert.AreEqual(entity.ModifiedByAlias, "ModifiedBy Client User");
Assert.AreEqual(entity.EsVersion.Value, 1);
DateTime modified = entity.DateModified.Value;
entity.LastName = "Two";
System.Threading.Thread.Sleep(4);
entity.Save();
Assert.AreEqual(entity.FirstName, "Test");
Assert.AreEqual(entity.LastName, "Two");
Assert.AreEqual(entity.Age.Value, 40);
Assert.AreEqual(entity.DateAddedAlias.Value.Day, DateTime.UtcNow.Day);
Assert.AreEqual(entity.DateModified.Value.Day, DateTime.UtcNow.Day);
Assert.Greater(entity.DateModified.Value, modified);
Assert.AreEqual(entity.AddedBy, "AddedBy Client User");
Assert.AreEqual(entity.ModifiedByAlias, "ModifiedBy Client User");
Assert.AreEqual(entity.EsVersion.Value, 2);
// No Update
entity = new CustomClientAliased();
entity.LoadByPrimaryKey(keyId);
DateTime added = entity.DateAddedAlias.Value;
modified = entity.DateModified.Value;
entity.Save();
Assert.AreEqual(entity.FirstName, "Test");
Assert.AreEqual(entity.LastName, "Two");
Assert.AreEqual(entity.Age.Value, 40);
Assert.AreEqual(entity.DateAddedAlias.Value, added);
Assert.AreEqual(entity.DateModified.Value, modified);
Assert.AreEqual(entity.AddedBy, "AddedBy Client User");
Assert.AreEqual(entity.ModifiedByAlias, "ModifiedBy Client User");
Assert.AreEqual(entity.EsVersion.Value, 2);
// Clean up
entity = new CustomClientAliased();
entity.LoadByPrimaryKey(keyId);
Assert.AreEqual(entity.FirstName, "Test");
Assert.AreEqual(entity.LastName, "Two");
Assert.AreEqual(entity.Age.Value, 40);
Assert.AreEqual(entity.DateAddedAlias.Value, added);
Assert.AreEqual(entity.DateModified.Value, modified);
Assert.AreEqual(entity.AddedBy, "AddedBy Client User");
Assert.AreEqual(entity.ModifiedByAlias, "ModifiedBy Client User");
Assert.AreEqual(entity.EsVersion.Value, 2);
entity.MarkAsDeleted();
entity.Save();
entity = new CustomClientAliased();
if (entity.LoadByPrimaryKey(keyId))
{
Assert.Fail("Not deleted");
}
//.........这里部分代码省略.........