2016-06-03 6 views
0

Ich mache eine Anwendung, die einem kleinen Netzwerk ähnelt. Ich habe diese Klasse:Exclude Eigenschaft auf Abfrage neo4j Client

class Person 
{ 
    public string Email {get; set;} 
    public string Password {get; set;} 
    public int Age {get; set;} 
    public long Birthday {get;set;} 
    ... 30 properties more 
} 

Ich habe diese Anfrage:

_graphClient.Cypher.Match ("n:Person") 
    .Where<Person>(n => n.Email == info.Email) 
    .Return(n => n.As<Person>) 

Aber ich möchte, dass meine Abfrage das Passwort ignorieren und alle anderen Eigenschaften zurückzukehren.

Genau, ich will es sein:

{ 
Email: "email_1", 
Age : 10, 
Birthday : 1000 
... 30 properties more 
} 

Kann mir jemand bitte helfen?

Vielen Dank.

Antwort

0

Es gibt drei Möglichkeiten, die ich mir vorstellen kann, aber ich denke nur eine ist wirklich für Sie realisierbar. Sie können das Attribut [JsonIgnore] an Ihre Password Eigenschaft anhängen - aber das wird aufhören, es jemals serialisiert werden - und ich glaube nicht, dass Sie das wollen.

Die zweite Option ist eine anonyme Art für Ihre Rückkehr zu verwenden, so etwas wie:

.Return(n => new { 
     Email = n.As<Person>().Email, 
     /* etc */ 
    }) 

Aber ich denke, das bedeutet werden Sie eine Menge Code schreiben werde, was ich denke, Sie lieber vermeiden.

Die letzte Option ist wie etwas zu haben:

public class Person { 
    public string Email { get; set; } 
    /* All other properties, except Password */ 
} 

public class PersonWithPassword : Person { 
    public string Password { get;set; } 
} 

Dann Person verwenden, wo Sie sind, und PersonWithPassword, wo Sie das Passwort.

Vielleicht finden Sie ein Problem haben, wenn Sie eine Mitgliedschaft einrichten verwenden Person haben wie - in diesem Fall, Sie so etwas wie tun würde:

public class PersonWithoutPassword { 
    public string Email { get; set; } 
    /* All other properties, except Password */ 
} 

public class Person : PersonWithoutPassword { 
    public string Password { get;set; } 
} 

und in Ihrer Rückkehr - du würdest zurück:

Return(n => n.As<PersonWithoutPassword>()) 

statt.