我想做这样的事情。
Map = entitys => entitys.Select(entity=>
new { Query = new object[]
{
entity.Name,
entity.MyEnumValue.MyExtentsionMethod()
}
});
我的枚举
public enum MyEnumValue
{
[EnumMember(Value = "Value 1")]
[Description("Value 1")]
Value1,
[EnumMember(Value = "Value 2")]
[Description("Value 2")]
Value2,
}
MyExtensionMethod()
会为我Enum
指定Description
的友好名称。
我知道问题是在创建索引期间用户定义的类不可用。所以我需要一种方法来实现这一点,使用反射或正确的方法来检索此枚举描述以进行索引。
感谢您的帮助。
答案 0 :(得分:2)
我建议使用Compilation Extensions。看看http://ravendb.net/docs/server/extending/plugins
您必须从AbstractDynamicCompilationExtension继承(如示例中的PalindromeDynamicCompilationExtension)。请记住将您的dll上传到RavenDB服务器的Plugins文件夹。
答案 1 :(得分:1)
这就是我最终要做的事情
Map = entitys => entitys.Select(entity=>
new { Query = new object[]
{
entity.Name,
new[]{"Value 1","Value 2"}[(int)entity.])
}
});
唯一的缺点是硬编码的字符串字符串,但它适用于我。