LINQ语句导致sub无异常终止

时间:2013-11-08 01:15:28

标签: c# linq visual-studio-2012

我正在构建一个数据库应用程序。我在SSMS中创建了表,并使用VS2012的EntityFramework NuGet加载项来创建我的数据对象。到目前为止,一切都很好。当我尝试为一个特定的数据对象编写LINQ语句时,sub只是在LINQ语句中退出。在以下代码中,db是我的数据库上下文:

private void FillPayRate()
{
    var payRate = db.PayRates.SingleOrDefault(p => p.AgeGroupID == m_ageGroupID &&
    p.SystemID == m_systemID && p.PositionID == m_positionID);
    if (payRate != null)
        txtPayRate.Text = payRate.Rate.ToString("0.00");
    else
        txtPayRate.Text = string.Empty;
}

当程序运行该子程序时,它将在第一个语句中退出。没有例外,没有错误,没有什么。这就好像该语句被解释为return;应用程序只是继续运行,但是sub中的其余代码以及调用该sub的子代码中的任何代码都被跳过。

我的所有其他数据对象和数据访问模型都可以正常工作。我检查了数据库以确保存在适当的记录。我尝试用以下所有内容替换第一个语句:

var payRate = (from t in db.PayRates
               where t.AgeGroupID == m_ageGroupID &&
                     t.SystemID == m_systemID &&
                     t.PositionID == m_positionID
               select t).FirstOrDefault();

var payRate = db.PayRates.SingleOrDefault(p => p.PayRateID == 1);

var payRate = db.PayRates.ToArray();

var payRate = db.PayRates.FirstOrDefault();

每个语句都会产生相同的行为。

我已经完全删除了项目bin和obj文件夹并重建了它。我还检查了数据对象模型和地图,一切都正确匹配。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题,虽然我仍然不知道是什么原因导致了这个问题。我删除了整个模型文件夹,并让Entity Framework插件重新创建了所有模型和映射,然后我从头开始重新完成所有自定义对象属性。这很乏味(这是我希望避免的),但它确实有效。

感谢大家的建议,对不起,我们无法弄清楚发生了什么,这对其他人都有用。