0
我有一個實體類型:RavenDb:RavenJObject.ToObject <T>()失去了編號
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<Log, LogIndex>().Where(x => 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<Log>()
返回日誌失去它的ID屬性的值(它爲0)。但它的動作和消息屬性的值不會丟失。
正在使用RavenJObject.ToObject<T>()
正確的方式來獲取查詢結果(實體)?如果是這樣,我的代碼有什麼問題?如果不是,哪一種是正確的?