示例#1
0
        public void AttachRejectsMismatchedEntities()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <DbSetModel>(context);

            var entities = new[] {
                new DbSetModel
                {
                    Id = "abcd"
                },
                new DbSetModel
                {
                    Id = "efgh"
                }
            };

            dbSet.AddRange(entities);

            context.SaveChanges();

            ResetMongoDb();

            context = new MongoDbTenantContext(connection, tenantId);
            dbSet   = new MongoDbTenantSet <DbSetModel>(context);

            var result = dbSet.AsNoTracking().ToList();

            result[0].TenantId = tenantId + "a";

            Assert.ThrowsException <MultiTenantException>(() => context.AttachRange(result));
        }
示例#2
0
        public void SuccessfullyAttachUntrackedEntities()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <DbSetModel>(context);

            var entities = new[] {
                new DbSetModel
                {
                    Id = "abcd"
                },
                new DbSetModel
                {
                    Id = "efgh"
                }
            };

            dbSet.AddRange(entities);

            context.SaveChanges();

            ResetMongoDb();

            context = new MongoDbTenantContext(connection, tenantId);
            dbSet   = new MongoDbTenantSet <DbSetModel>(context);

            var result = dbSet.AsNoTracking().ToList();

            context.AttachRange(result);

            Assert.AreEqual(MongoFramework.Infrastructure.EntityEntryState.NoChanges, context.ChangeTracker.GetEntry(result[0]).State);
            Assert.AreEqual(MongoFramework.Infrastructure.EntityEntryState.NoChanges, context.ChangeTracker.GetEntry(result[1]).State);
        }