我正在构建一个数据库应用程序。我在 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;
应用程序只是继续运行,但子程序中的其余代码以及子程序中调用该子程序的任何代码都被跳过。
我所有的其他数据对象和数据访问模型都工作得很好。我检查了数据库以确保存在适当的记录。我尝试用以下所有内容替换第一个语句:
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 文件夹并重建了它。我还检查了数据对象模型和地图,一切都正确匹配。任何帮助将不胜感激。