Set*_* IK 1 c# asp.net asp.net-mvc ravendb
我正在做一个项目.我有以下模型
public class RegistrantClass : IRavenEntity
{
public RegistrantClass()
{
RegistrantId = new List<string>();
}
public int Id { get; set; }
public IList<String> RegistrantId { get; set; }
public String ClassId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我定义了以下索引
store.DatabaseCommands.PutIndex("RegistrantClass/ClassByStudents",
new IndexDefinitionBuilder<RegistrantClass>
{
Map = students => from i in students
from j in i.RegistrantId
select new { j }
});
Run Code Online (Sandbox Code Playgroud)
我试着像这样查询上面的索引
public object GetMapping(string registrantId)
{
var mapping = _session.Query<RegistrantClass>("RegistrantClass/ClassByStudents")
.Customize(i => i.Include<RegistrantClass>(k => k.RegistrantId))
.Customize(i => i.Include<RegistrantClass>(k => k.ClassId))
.FirstOrDefault(m => m.registrantId.Contains(registrantId));
return mapping;
}
Run Code Online (Sandbox Code Playgroud)
但后来我得到错误信息
但是,这给了我NotSupportedException:不支持的方法:包含.
我尝试使用以下代码
.FirstOrDefault(m => registrantId.In<string>(m.RegistrantId));
Run Code Online (Sandbox Code Playgroud)
但后来我得到以下错误消息
Expression type not supported: System.Linq.Expressions.TypedParameterExpression
Run Code Online (Sandbox Code Playgroud)
我做错了什么?亲切的问候
你需要反过来做:
不:
.FirstOrDefault(m => registrantId.Contains(m.RegistrantId));
Run Code Online (Sandbox Code Playgroud)
但:
.FirstOrDefault(m => m.RegistrantId.In(registrantId));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1774 次 |
| 最近记录: |