2012-12-03 23 views
0

我想從我的數據庫得到的東西,我需要它是這樣的:LINQ的不希望合作 - DbExpressionBinding錯誤

var tribunalCase = context.TribunalCases.Where(c => c.Voters.Any(v => v.Voter.UserName == User.Identity.Name)) 
        .Select(c => c) 
        .ToList(); 

但後來,它崩潰當我嘗試使用。任何()或.All()。我得到以下錯誤:

DbExpressionBinding requires an input expression with a collection ResultType. Parameter name: input

這是我的模型:

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

我怎麼能解決這個錯誤?

回答

2

配置不正確:Voters是一個集合,所以您應該撥打HasMany而不是HasOptional

+0

作品。謝謝。 – ojek