ravendb 索引的问题
Problems with ravendb indexes
嗨,我在使用 ravendb 索引时遇到了一些问题。
让我用代码解释一下我想做什么。
我有这两个 类:
class John
{
public string Name { get; set; }
public IList<int> Cats { get; set; }
}
class John2
{
public string Name { get; set; }
public int Cat { get; set; }
}
它们各自代表ravendb中的一种文档类型。
我想创建一个索引。该索引应该给我尽可能多的 John2 对象,因为 John 类型的对象的 Cats 列表中有条目。
所以假设我有这个:
var john = new John
{
Name = "test",
Cats = new List<int> { 12,13}
};
然后我想要一个索引来执行以下操作:
var res = john.Cats.Select(x => new John2 {Name = "john", Cat = x});
变量 res 将包含 2 个 John2 类型的条目,每个条目都有自己的 Cat。 John2 条目的数量将取决于对象 John 的 Cats 列表中的 Cats 数量。
首先,我对 ravendb 和索引完全陌生。所以我什至不知道这样的事情是否可能。
有人对如何使用 raven 索引实现上述功能有建议吗?
如果您想要数据的投影,您可以使用 Transformers。
public class John2Transformer : AbstractTransformerCreationTask<John>
{
public John2Transformer ()
{
TransformResults = johns => from john in johns
from cat in john.Cats
select new
{
Name = john.Name,
Cat = cat
};
}
}
查询:
IList<John2> res = session.Query<John>()
.TransformWith<John2Transformer, John2>()
.ToList();
嗨,我在使用 ravendb 索引时遇到了一些问题。
让我用代码解释一下我想做什么。
我有这两个 类:
class John
{
public string Name { get; set; }
public IList<int> Cats { get; set; }
}
class John2
{
public string Name { get; set; }
public int Cat { get; set; }
}
它们各自代表ravendb中的一种文档类型。
我想创建一个索引。该索引应该给我尽可能多的 John2 对象,因为 John 类型的对象的 Cats 列表中有条目。
所以假设我有这个:
var john = new John
{
Name = "test",
Cats = new List<int> { 12,13}
};
然后我想要一个索引来执行以下操作:
var res = john.Cats.Select(x => new John2 {Name = "john", Cat = x});
变量 res 将包含 2 个 John2 类型的条目,每个条目都有自己的 Cat。 John2 条目的数量将取决于对象 John 的 Cats 列表中的 Cats 数量。
首先,我对 ravendb 和索引完全陌生。所以我什至不知道这样的事情是否可能。
有人对如何使用 raven 索引实现上述功能有建议吗?
如果您想要数据的投影,您可以使用 Transformers。
public class John2Transformer : AbstractTransformerCreationTask<John>
{
public John2Transformer ()
{
TransformResults = johns => from john in johns
from cat in john.Cats
select new
{
Name = john.Name,
Cat = cat
};
}
}
查询:
IList<John2> res = session.Query<John>()
.TransformWith<John2Transformer, John2>()
.ToList();