public void AddRelationshipsToExistingEntity() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetDatabase(database); var entity = dbSet.Create(); entity.Description = "AddRelationshipsToExistingEntity"; dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); dbEntity.StringModelEntities.Add(new StringIdModel { Description = "AddRelationshipsToExistingEntity-StringIdModel-1" }); dbEntity.StringModelEntities.Add(new StringIdModel { Description = "AddRelationshipsToExistingEntity-StringIdModel-2" }); dbSet.SaveChanges(); Assert.AreEqual(2, dbEntity.StringModelEntities.Count); Assert.IsTrue(dbEntity.StringModelEntities.All(e => e.Id != null)); }
public void ForceLoadEntities() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetDatabase(database); var entity = dbSet.Create(); entity.Description = "ForceLoadEntities"; entity.StringModelEntities.Add(new StringIdModel { Description = "ForceLoadEntities-StringIdModel-1" }); entity.StringModelEntities.Add(new StringIdModel { Description = "ForceLoadEntities-StringIdModel-2" }); dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); var navigationCollection = dbEntity.StringModelEntities as EntityNavigationCollection <StringIdModel>; Assert.AreEqual(2, navigationCollection.UnloadedCount); navigationCollection.LoadEntities(); Assert.AreEqual(2, navigationCollection.LoadedCount); Assert.AreEqual(0, navigationCollection.UnloadedCount); }
public async Task AddRelationshipsToNewEntityAsync() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetDatabase(database); var entity = dbSet.Create(); entity.Description = "AddRelationshipsToNewEntityAsync"; entity.ObjectIdModelEntities.Add(new ObjectIdIdModel { Description = "AddRelationshipsToNewEntityAsync-ObjectIdIdModel-1" }); entity.ObjectIdModelEntities.Add(new ObjectIdIdModel { Description = "AddRelationshipsToNewEntityAsync-ObjectIdIdModel-2" }); await dbSet.SaveChangesAsync().ConfigureAwait(false); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual(2, dbEntity.ObjectIdModelEntities.Count); Assert.IsTrue(dbEntity.ObjectIdModelEntities.All(e => e.Id != ObjectId.Empty)); }
public void RemoveRelationshipToEntity() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetDatabase(database); var entity = dbSet.Create(); entity.Description = "RemoveRelationshipToEntity"; var item = new StringIdModel { Description = "RemoveRelationshipToEntity-StringIdModel-1" }; entity.StringModelEntities.Add(item); dbSet.SaveChanges(); entity.StringModelEntities.Remove(item); dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual(0, dbEntity.StringModelEntities.Count); var collectionDbSet = new MongoDbSet <StringIdModel>(); collectionDbSet.SetDatabase(database); var itemDbEntity = collectionDbSet.Where(e => e.Id == item.Id).FirstOrDefault(); Assert.IsNotNull(itemDbEntity); }
public void ValidationExceptionOnInvalidModel() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <MongoDbSetValidationModel>(); dbSet.SetDatabase(database); dbSet.Add(new MongoDbSetValidationModel()); dbSet.SaveChanges(); }
public void SuccessfulInsertAndQueryBack() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <MongoDbSetValidationModel>(); dbSet.SetDatabase(database); dbSet.Add(new MongoDbSetValidationModel { RequiredField = "ValueSync" }); Assert.IsFalse(dbSet.Any(m => m.RequiredField == "ValueSync")); dbSet.SaveChanges(); Assert.IsTrue(dbSet.Any(m => m.RequiredField == "ValueSync")); }
#pragma warning disable CRR0026 // Unused member - used via Reflection private void CommitRelationship <TRelatedEntity>(EntityRelationship relationship, IEnumerable <TEntity> entities) { var collection = BuildRelatedEntityCollection <TRelatedEntity>(relationship, entities); if (collection.Any()) { var dbSet = new MongoDbSet <TRelatedEntity>(); dbSet.SetDatabase(Database); dbSet.AddRange(collection); dbSet.SaveChanges(); } if (!relationship.IsCollection) { ApplyForeignKeyChanges <TRelatedEntity>(relationship, entities); } }
public async Task SuccessfulInsertAndQueryBackAsync() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <MongoDbSetValidationModel>(); dbSet.SetDatabase(database); dbSet.Add(new MongoDbSetValidationModel { RequiredField = "ValueAsync" }); Assert.IsFalse(dbSet.Any(m => m.RequiredField == "ValueAsync")); await dbSet.SaveChangesAsync().ConfigureAwait(false); Assert.IsTrue(dbSet.Any(m => m.RequiredField == "ValueAsync")); }
public void SaveWithNullNavigationProperty() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <CollectionIntegrationModel>(); dbSet.SetDatabase(database); var entity = new CollectionIntegrationModel { Description = "SaveWithNullNavigationProperty" }; dbSet.Add(entity); dbSet.SaveChanges(); var dbEntity = dbSet.Where(e => e.Id == entity.Id).FirstOrDefault(); Assert.AreEqual(0, dbEntity.StringModelEntities.Count); }
#pragma warning restore CRR0026 // Unused member - used via Reflection #pragma warning disable CRR0026 // Unused member - used via Reflection private async Task CommitRelationshipAsync <TRelatedEntity>(EntityRelationship relationship, IEnumerable <TEntity> entities, CancellationToken cancellationToken) { var collection = BuildRelatedEntityCollection <TRelatedEntity>(relationship, entities); cancellationToken.ThrowIfCancellationRequested(); if (collection.Any()) { var dbSet = new MongoDbSet <TRelatedEntity>(); dbSet.SetDatabase(Database); dbSet.AddRange(collection); await dbSet.SaveChangesAsync(cancellationToken).ConfigureAwait(false); } if (!relationship.IsCollection) { ApplyForeignKeyChanges <TRelatedEntity>(relationship, entities); } }
public void ReadAndWriteRootEntity() { var database = TestConfiguration.GetDatabase(); var dbSet = new MongoDbSet <RootKnownBaseModel>(); dbSet.SetDatabase(database); var rootEntity = new RootKnownBaseModel { Description = "ReadAndWriteRootEntity-RootKnownBaseModel" }; dbSet.Add(rootEntity); var childEntity = new UnknownChildToRootModel { Description = "ReadAndWriteRootEntity-UnknownChildToRootModel" }; dbSet.Add(childEntity); dbSet.SaveChanges(); ResetMongoDbDriver(); dbSet = new MongoDbSet <RootKnownBaseModel>(); dbSet.SetDatabase(database); var dbRootEntity = dbSet.Where(e => e.Id == rootEntity.Id).FirstOrDefault(); Assert.IsNotNull(dbRootEntity); Assert.AreEqual(typeof(RootKnownBaseModel), dbRootEntity.GetType()); var dbChildEntity = dbSet.Where(e => e.Id == childEntity.Id).FirstOrDefault(); Assert.IsNotNull(dbChildEntity); Assert.AreEqual(typeof(UnknownChildToRootModel), dbChildEntity.GetType()); }