Я работаю на своем c# веб-сервере и хочу использовать neo4j в качестве базы данных. У меня есть модели в c# коде, например, User:
public class User
{
public string Username { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public long? Id { get; set; }
public long? Status { get; set; }
public bool? Active { get; set; }
public bool? Blocked { get; set; }
public string RefreshToken { get; set; }
public User() { }
}
Мне нужен совет, как десериализовать IRecord, возвращенный функцией session.Run. У меня есть эта функция:
public List<T> Query<T>(string cypher, object data) where T: new()
{
using (ISession session = this.Driver.Session(AccessMode.Write))
{
try
{
IStatementResult result = session.Run(cypher, data);
List<T> res = new List<T>();
var type = typeof(T);
foreach (IRecord record in result)
{
T o = new T();
for (int i = 0; i < record.Keys.Count; i++)
{
try
{
var prop = type.GetProperty(record.Keys[i]);
if (prop != null) prop.SetValue(o, record.Values[record.Keys[i]]);
}
catch { }
}
res.Add(o);
}
return res;
}
catch(Exception e)
{
Debug.WriteLine("Error occured: #1: "+e.Message);
return null;
}
}
}
но я не уверен, что это хорошая производительность