neo4jclient执行删除功能不起作用

时间:2015-11-24 14:28:34

标签: c# asp.net visual-studio neo4j neo4jclient

我正在使用https://github.com/Readify/Neo4jClient/wiki/cypher-examples#delete-a-user-and-all-inbound-relationships

中的示例
graphClient.Cypher
    .OptionalMatch("(user:User)<-[r]-()")
    .Where((User user) => user.Id == 123)
    .Delete("r, user")
    .ExecuteWithoutResults();

并根据我的需要对其进行更改

WebApiConfig.GraphClient.Cypher
    .OptionalMatch("(user:User)<-[r]-()")
    .Where((User user) => user.userId == userId)
    .Delete("r, user")
    .ExecuteWithoutResults();

但每次我仍然可以通过

获取用户
 User user1 = WebApiConfig.GraphClient.Cypher
        .Match("(u:User)")
        .Where((User u) => u.userId == userId)
        .Return(u => u.As<User>())
        .Results
        .FirstOrDefault();

我做错了什么?

节点标签是

  

用户

属性标签是

  

LastName,Name,FirstName,UpdatedTime,Email,facebookId,Picture,   用户id

图表db class的定义

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
           name: "ActionApi",
           routeTemplate: "api/{controller}/{action}/{id}",
           defaults: new { id = RouteParameter.Optional }
        );


        //Use an IoC container and register as a Singleton
        var url = ConfigurationManager.AppSettings["GraphDBUrl"];
        var user = ConfigurationManager.AppSettings["GraphDBUser"];
        var password = ConfigurationManager.AppSettings["GraphDBPassword"];
        var client = new GraphClient(new Uri(url), user, password);
        client.Connect();

        GraphClient = client;
    }

    public static IGraphClient GraphClient { get; private set; }
} 

2 个答案:

答案 0 :(得分:1)

你试过了吗?

graphClient.Cypher
    .Match("(user:User)")
    .OptionalMatch("(user)-[r]-()")
    .Where((User user) => user.Id == 123)
    .Delete("r, user")
    .ExecuteWithoutResults();

我认为您的用户有出站关系,因此不会被删除为&#39; r&#39;只是入境。

答案 1 :(得分:0)

这已经很老了,但这是当前的提示:

使用def main(): letters = 'a b c d e f g h i j k l m n o p q r s t u v w x y z' pword = input('Please enter a password') if (len(pword)>8) and (any(x for x in pword if x.isupper())) and (any(x for x in pword if x.islower())) and (any(x for x in pword if x.isdigit())) and (any(x for x in pword if not x.isalnum())): # good password else: # problem man 方法代替DetachDelete。然后,这些关系将自动删除,而无需先搜索它们。