RavenDB 3.0 索引创建:表达式树可能不包含动态操作?
RavenDB 3.0 index creation: An expression tree may not contain a dynamic operation?
这是创建简单索引以避免从 Ayende's post 扇出索引的示例代码。但是它无法编译。错误是
"An expression tree may not contain a dynamic operation".
如果去掉演员表
IEnumerable<dynamic>
从代码来看,它编译但未能生成索引。这应该是 RavenDB 3.0 用户的常见问题。有什么建议吗?
from doc in docs.Users select new {
CreditCards_Expired = (
from docCreditCardsItem in ((IEnumerable<dynamic>)doc.CreditCards).DefaultIfEmpty()
select docCreditCardsItem.Expired).ToArray(),
Roles_Name = (
from docRolesItem in ((IEnumerable<dynamic>)doc.Roles).DefaultIfEmpty()
select docRolesItem.Name).ToArray()
}
尝试使用:
from doc in docs.Users
select new {
CreditCards_Expired = doc.CreditCards.Select(c=>c.Expired),
Roles_Name = doc.Roles.Select(r=>r.Names)
}
这是创建简单索引以避免从 Ayende's post 扇出索引的示例代码。但是它无法编译。错误是
"An expression tree may not contain a dynamic operation".
如果去掉演员表
IEnumerable<dynamic>
从代码来看,它编译但未能生成索引。这应该是 RavenDB 3.0 用户的常见问题。有什么建议吗?
from doc in docs.Users select new {
CreditCards_Expired = (
from docCreditCardsItem in ((IEnumerable<dynamic>)doc.CreditCards).DefaultIfEmpty()
select docCreditCardsItem.Expired).ToArray(),
Roles_Name = (
from docRolesItem in ((IEnumerable<dynamic>)doc.Roles).DefaultIfEmpty()
select docRolesItem.Name).ToArray()
}
尝试使用:
from doc in docs.Users
select new {
CreditCards_Expired = doc.CreditCards.Select(c=>c.Expired),
Roles_Name = doc.Roles.Select(r=>r.Names)
}