【问题标题】:Linq Query throws System.StackOverflowException on .tolist()Linq Query 在 .tolist() 上抛出 System.StackOverflowException
【发布时间】:2014-03-10 23:17:23
【问题描述】:

以下代码从我的数据库中检索数据:

var acc_count = (from p in db.Payee
where p.AccountNumber == "02055455622"
select p)

但是当我尝试运行acc_count.ToList()acc_count.Count() 时,我得到了System.StackOverflowExeption


这是收款人模型类。我首先使用 ASP.NET MVC 实体框架代码

public class Payee
{
    [Key]
    public virtual int ID { get; set; }

    [DataType(DataType.Text)]
    public virtual string Name { get; set; }

    [MaxLength(15)]
    [DataType(DataType.Text)]
    [Display(Name="Account Number")]
    public virtual string AccountNumber { get; set; }

    public virtual Bank Bank { get; set; }
}

【问题讨论】:

  • 你是如何定义你的班级Payee的?
  • 尝试重建您的 EF 设计器并再次检查。 stackoverflow.com/questions/2067866/…
  • 清洁解决方案并重新刷新 edmx 模型
  • 可以在这里添加Bank类的定义吗?

标签: asp.net asp.net-mvc linq stack-overflow


【解决方案1】:

我终于能够解决这个问题了。引发异常的不是 linq 查询。这就是错误的来源

return Create(payee);

而不是

return View();

因为我的

[HttpGet]
public ActionResult Create() {

}

没有输入变量,一直调用其他方法

[HttpPost]
public ActionResult Create(Models.Payee payee) {

}

所以,这创建了一个无限循环,然后导致异常

谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多