我想从我的数据库中获取一些东西,我需要它是这样的:
var tribunalCase = context.TribunalCases.Where(c => c.Voters.Any(v => v.Voter.UserName == User.Identity.Name))
.Select(c => c)
.ToList();
但是,当我尝试使用.Any()或.All()时,它会崩溃。我收到以下错误:
DbExpressionBinding需要带有集合的输入表达式 与resultType。 参数名称:输入
这是我的模特:
public class Tribunal
{
public int Id { get; set; }
public Account User { get; set; }
public DateTime Expires { get; set; }
public Thread Thread { get; set; }
public int Points { get; set; }
public String Comment { get; set; }
public int VotersCount { get; set; }
public List<Voters> Voters { get; set; }
}
public class Voters
{
public int Id { get; set; }
public Account Voter { get; set; }
public bool Vote { get; set; }
public Tribunal Tribunal { get; set; }
}
我的配置如下:
modelBuilder.Entity<Tribunal>()
.HasOptional(t => t.Voters)
.WithRequired();
如何解决此错误?
答案 0 :(得分:2)
配置不正确:Voters
是一个集合,因此您应该致电HasMany
,而不是HasOptional
。