使用用户定义的扩展方法创建RavenDb索引 [英] Creating the RavenDb index with the User defined extension method
本文介绍了使用用户定义的扩展方法创建RavenDb索引的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Map = entitys => entity.Select(entity =>
new {Query = new object []
{
entity.Name,
entity.MyEnumValue.MyExtentsionMethod()
}
});
我的枚举
public enum MyEnumValue
{
[EnumMember(Value =Value 1)]
[描述(Value 1)]
Value1 ,
[EnumMember(Value =Value 2)]
[描述(Value 2)]
Value2,
}
MyExtensionMethod()
将为我的枚举
我为描述
指定。
我知道问题是在创建索引时用户定义的类不可用。所以我需要一种方法来实现这个使用反射或一个正确的方法来检索这个枚举描述索引。
感谢任何帮助。
解决方案
这是我最终做的
= entitys => entity.Select(entity =>
new {Query = new object []
{
entity.Name,
new [] {Value 1,Value 2 } [(int)entity。])
}
});
唯一的缺点是硬编码的字符串字符串,但它适用于我。
I want to do some thing like this.
Map = entitys => entitys.Select(entity=>
new { Query = new object[]
{
entity.Name,
entity.MyEnumValue.MyExtentsionMethod()
}
});
My Enum
public enum MyEnumValue
{
[EnumMember(Value = "Value 1")]
[Description("Value 1")]
Value1,
[EnumMember(Value = "Value 2")]
[Description("Value 2")]
Value2,
}
MyExtensionMethod()
will bring the friendly name for my Enum
which i have specified for the Description
.
I know the problem is that the User defined class are not available during the index creation. so i need a way to achieve this using the reflection or a proper way to retrieve this enum Description for indexing.
Thanks for any help.
解决方案
This is what i end up doing
Map = entitys => entitys.Select(entity=>
new { Query = new object[]
{
entity.Name,
new[]{"Value 1","Value 2"}[(int)entity.])
}
});
the only downside is the hard coded string string but it works for me.
这篇关于使用用户定义的扩展方法创建RavenDb索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文