【发布时间】:2017-09-15 09:10:19
【问题描述】:
这是我的代码:
int loanAppFundId = 0;
var loanAppDb = db.LoanApplications.FirstOrDefault(s => s.LoanId == vm.LoanId);
if (loanAppDb != null)
{
if (vm.FundID != null && loanAppDb.FundID !=0)
{
if (loanAppDb.FundID != vm.FundID)
{
string oldFund = "", newFund = "";
loanAppFundId = loanAppDb.FundID;
var oFund = db.Funds.Where(s => s.FundID == loanAppFundId);
}
}
}
在我尝试根据loanAppFundId 检索资金的最后一行是发生异常的地方,如果我将其设置为 0 或其他变量,它会毫无问题地继续进行,但每当我尝试设置一些变量时,我都会得到错误。
我故意将变量 loanAppFundId 初始化为值 0,但我再次收到错误,即引用对象未设置为对象的实例。
如果我在 db.Funds.Where 查询中设置了一些虚拟值,我就可以毫无问题地获得 loanAppDb.FundID 值。
我做错了什么?如果它为空或否,我对值进行了多次检查。
编辑
我不确定这个是如何重复的,因为我是在用真实的例子来提问,而不是一般性的问题。
【问题讨论】:
-
只有您可以调试自己的程序并查看异常抛出的位置并检查堆栈跟踪。任何“其他眼睛”都帮不了你。
-
在代码的第一行抛出异常,即 int loanAppFundId = 0;
-
那是不可能的。必须是在那之前的那一行。
-
不,正如我在问题解释中所说,如果我设置了一些特定值,可以说 22 代替 db.Funds.Where 行中的 loanAppFundId 变量,应用程序运行没有任何问题。
-
能否包含堆栈跟踪(或发生异常的屏幕截图)?
标签: c# entity-framework linq linq-to-sql linq-to-entities