public void FutureCountTest() { var db = new TrackerEntities(); // build up queries string emailDomain = "@battlestar.com"; var q1 = db.Users .Where(p => p.EmailAddress.EndsWith(emailDomain)) .Future(); string search = "Earth"; var q2 = db.Tasks .Where(t => t.Summary.Contains(search)) .FutureCount(); // should be 2 queries //Assert.AreEqual(2, db.FutureQueries.Count); // this triggers the loading of all the future queries var users = q1.ToList(); Assert.IsNotNull(users); // should be cleared at this point //Assert.AreEqual(0, db.FutureQueries.Count); // this should already be loaded Assert.IsTrue(((IFutureQuery)q2).IsLoaded); int count = q2; Assert.AreNotEqual(count, 0); }
public void Update() { var db = new TrackerEntities(); string emailDomain = "@test.com"; int count = db.Users.Update( u => u.Email.EndsWith(emailDomain), u => new User { IsApproved = false, LastActivityDate = DateTime.Now }); }
public void Delete() { var db = new TrackerEntities(); string emailDomain = "@test.com"; int count = db.Users .Where(u => u.EmailAddress.EndsWith(emailDomain)) .Delete(); }
public void GetEntityMapTask() { var db = new TrackerEntities(); var metadata = db.MetadataWorkspace; var map = db.Tasks.GetEntityMap<Task>(); Assert.AreEqual("[dbo].[Task]", map.TableName); }
public void DeleteWithExpressionContainingNullParameter() { // This test verifies that the delete is processed correctly when the where expression uses a parameter with a null parameter var db = new TrackerEntities(); string emailDomain = "@test.com"; string optionalComparisonString = null; int count = db.Users.Delete(u => u.EmailAddress.EndsWith(emailDomain) && (string.IsNullOrEmpty(optionalComparisonString) || u.AvatarType == optionalComparisonString)); }
public void UpdateWithExpressionContainingNullParameter() { // This test verifies that the update is interpreted correctly when the where expression uses a parameter with a null parameter var db = new TrackerEntities(); string emailDomain = "@test.com"; string optionalComparisonString = null; int count = db.Users.Update( u => u.EmailAddress.EndsWith(emailDomain) && (string.IsNullOrEmpty(optionalComparisonString) || u.AvatarType == optionalComparisonString), u => new User { IsApproved = false, LastActivityDate = DateTime.Now }); }
public void NoTransactionObjectContext() { using (var db = new TrackerEntities()) { string emailDomain = "@test.com"; int count = db.Users.Update( u => u.Email.EndsWith(emailDomain), u => new User { IsApproved = false, LastActivityDate = DateTime.Now }); count = db.Users.Delete(u => u.Email.EndsWith(emailDomain)); } }
public void TransactionScopeObjectContext() { using (var tx = new TransactionScope()) using (var db = new TrackerEntities()) { string emailDomain = "@test.com"; int count = db.Users .Where(u => u.EmailAddress.EndsWith(emailDomain)) .Update(u => new User { IsApproved = false, LastActivityDate = DateTime.Now }); count = db.Users .Where(u => u.EmailAddress.EndsWith(emailDomain)) .Delete(); tx.Complete(); } }
public void PageTest() { var db = new TrackerEntities(); // base query var q = db.Tasks .Where(p => p.PriorityId == 2) .OrderByDescending(t => t.CreatedDate); // get total count var q1 = q.FutureCount(); // get first page var q2 = q.Skip(0).Take(10).Future(); // triggers sql execute as a batch var tasks = q2.ToList(); int total = q1.Value; Assert.IsNotNull(tasks); }
public void FutureValueReverseTest() { var db = new TrackerEntities(); // build up queries string emailDomain = "@battlestar.com"; var q1 = db.Users .Where(p => p.EmailAddress.EndsWith(emailDomain)) .FutureFirstOrDefault(); string search = "Earth"; var q2 = db.Tasks .Where(t => t.Summary.Contains(search)) .FutureCount(); // duplicate query except count var q3 = db.Tasks .Where(t => t.Summary.Contains(search)) .Future(); // should be 3 queries //Assert.AreEqual(3, db.FutureQueries.Count); // access q2 first to trigger loading, testing loading from FutureCount // this triggers the loading of all the future queries var count = q2.Value; Assert.AreNotEqual(count, 0); // should be cleared at this point //Assert.AreEqual(0, db.FutureQueries.Count); // this should already be loaded Assert.IsTrue(((IFutureQuery)q1).IsLoaded); var users = q1.Value; Assert.IsNotNull(users); var tasks = q3.ToList(); Assert.IsNotNull(tasks); }