2010-10-22 80 views
1

我具有其中我使用实体模型,用于连接到MySQL数据库对象必须实现IConvertible LINQ实体查询包含分组

在这里,我接合2个表,然后应用组通过在一个ASP.NET MVC应用程序的领域。然后从GroupBy结果中获取结果。 一切正常的开发机器上,但得到一个错误:

Object Must Implement IConvertible

能否请你帮我为什么这样的错误发生。我采取了数据库表格暂存服务器的转储,然后在开发机器上使用,然后也正常工作。但是,当我将开发机器数据库的转储放置在分段上时,会得到相同的异常。

那么问题我不明白。

模型结构是

student: 
studentid int 
course string 
name string 

student_payment: 
id int 
studentid int 
amount decimal 

这里的学生和student_payment有一个studentid联想到许多。

查询:

var query = from s in entity.student_payment.Include("student") 
      group s by s.registrant.course into grp 
      select new 
      { 
       course = grp.Key, 
       count = (from studentcnt in grp select studentcnt.student.studentid), 
       payment = (from payment in grp select payment) 
      }; 

foreach (var q in query) // exception is occurring here 
{ 
    studentcount == q.count.Distinct().Count() 
    iamount = payment.Sum(r => r.amount); 
} 

在查询我已应用的GroupBy在球场上,然后取出由相关联的表中的记录。

+1

请张贴您的模型和疑问。 – Yakimych 2010-10-22 14:26:58

+0

如果您将其编辑为问题而不是将其留作评论,将会更有帮助。然后你可以使用格式和缩进来使其可读性和可理解性(到目前为止它不是)。如果你希望得到答案,请在这个问题上付出一些努力。 – Yakimych 2010-10-25 07:50:44

+0

我用它来接受答案,当他们真的解决我的问题。 – 2010-10-25 09:11:47

回答

0

我能够解决这个错误。我想当我们在表和表之间进行关联时,我们不能应用select子查询。

所以我在解析groupby的结果集时使用select查询。

var query = from s in entity.student_payment.Include("student") 
      group s by s.registrant.course into grp 
      select new 
      { 
       course = grp.Key,  
      }; 

foreach (var q in query) // exception is occurring here 
{ 
    var count = (from studentcnt in entity.student_payment.Include("student") where student.course==q.course select studentcnt);    

    payment = (from payment in grp select payment) 

    studentcount == count.Select(r=>r.student.studentid).Distinct().Count() 

    iamount = count.Sum(r => r.amount); 
} 
相关问题