0

我正在尝试从我的数据库中获取一些东西,我需要它是这样的:

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();

我该如何解决这个错误?

4

1 回答 1

2

配置不正确:Voters是一个集合,所以你应该调用HasMany,而不是HasOptional

于 2012-12-03T14:02:34.163 回答