コード例 #1
0
        public bool Insert <TEntity>(IEntityInfo info, TEntity entity, IMDbTransaction transaction) where TEntity : class
        {
            try {
                var collection = MongoDatabase().GetCollection <TEntity>(info.EntityName);
                collection.InsertOne(entity);

                return(true);
            }
            catch (MongoDuplicateKeyException e) {
                _trace.TraceEvent(TraceEventType.Critical, 0, $"Duplicate key founded. Error on insert {info.EntityName} \n\n{e}");
                throw;
            }
            catch (Exception e) {
                transaction.Abort();
                _trace.TraceEvent(TraceEventType.Critical, 0, $"Error on insert {info.EntityName} \n\n{e}");
                throw;
            }
        }
コード例 #2
0
        public bool Delete <TEntity>(IEntityInfo info, TEntity entity, IMDbTransaction transaction) where TEntity : class
        {
            try {
                var collection   = MongoDatabase().GetCollection <TEntity>(info.EntityName);
                var keyValuePair = KeyValuePairOf(entity, info);
                var result       = collection.DeleteOne(Builders <TEntity> .Filter.Eq("_id", keyValuePair.Value));

                if (result.DeletedCount == 1)
                {
                    return(true);
                }

                return(false);
            }
            catch (Exception e) {
                transaction.Abort();
                _trace.TraceEvent(TraceEventType.Critical, 0, $"Error on delete {info.EntityName} \n\n{e}");
                throw;
            }
        }