コード例 #1
0
        private object DoLazyLoad(Type type, object entity, string propertyName)
        {
            var        castedEntity = entity as IProxyTargetAccessor;
            Type       genericType  = type.IsGenericType ? type.GetGenericArguments()[0] : type;
            MethodInfo method       = typeof(NodeMapper).GetMethod("LoadRelatedEntitiesWithId");
            MethodInfo generic      = method.MakeGenericMethod(genericType);
            int        id           = MapperHelper.GetIdentity(castedEntity.DynProxyGetTarget());

            object result = generic.Invoke(null, new object[] { id, propertyName });

            if (type.Namespace != "System.Collections.Generic")
            {
                result = ((IEnumerable)result).Cast <object>().ToArray().FirstOrDefault();
            }

            return(result);
        }
コード例 #2
0
ファイル: NodeMapper.cs プロジェクト: khoadd/Neo4jD
        internal Node SaveAndReturnAsNode(object entity)
        {
            if (entity == null)
            {
                return(null);
            }
            int  id   = MapperHelper.GetIdentity(entity);
            Node node = null;

            if (id <= 0)
            {
                node = this.CreateNode(entity);
                node.Create();
                MapperHelper.SetIdentity(entity, node.Id);
            }
            else
            {
                node = Node.Get(id);
                this.UpdateNode(node, entity);
            }
            return(node);
        }
コード例 #3
0
ファイル: NodeMapper.cs プロジェクト: khoadd/Neo4jD
        public void Delete <T>(T entity) where T : class
        {
            Node node = Node.Get(MapperHelper.GetIdentity <T>(entity));

            node.Delete();
        }