RavenDb:RavenObject.ToObject()丢失了Id
我有一个实体类型:RavenDb:RavenObject.ToObject()丢失了Id,ravendb,Ravendb,我有一个实体类型: public class Log { public int Id { get; set; } public string Action { get; set; } public string Message { get; set; } } 和我的索引: public class LogIndex : AbstractIndexCreationTask<Log> { public LogIndex() { M
public class Log
{
public int Id { get; set; }
public string Action { get; set; }
public string Message { get; set; }
}
和我的索引:
public class LogIndex : AbstractIndexCreationTask<Log>
{
public LogIndex()
{
Map = xs => from x in xs
select new
{
x.Id,
x.Action,
x.Message
};
}
}
然后我可以使用它们来存储日志,并且可以使用context.Query.Wherex=>x.Action==GetString.ToList来获取日志
然后我尝试使用命令查询我的日志:
QueryResult queryResult = context.Advanced.DocumentStore.DatabaseCommands.Query("LogIndex", new IndexQuery
{
Query = "Action:(GetString)"
});
Log log = queryResult.Results.First().ToObject<Log>();
我的问题是:
ToObject返回的日志将丢失其Id属性的值它是0。但它的操作和消息属性的值不会丢失
使用RavenJObject.ToObject是获取查询结果的正确方法吗?如果是,我的代码有什么问题?如果不是,哪种方法是正确的?不,这不是正确的方法。 首先,您使用的是非常低级的API,应该为此使用会话 如果要使用会话,它将负责正确设置ID