使用sql server 2012和visual studio 2012 c#.net 4.0
我有一个工作系统,运行每日报告电子邮件,今天出现了错误,当我调试它时,我发现了一些奇怪的东西。
我有这个简单的查询;
var rslt = (from p in db.someTable
where (p.STATS_DATE != null && p.SOME_COL!= null &&
p.SOME_COL < enddate && p.SOME_COL> startdate &&
this.SOME_LIST.Contains(p.SOME_COL))
select p);
抛出"Object reference not set to an instance of an object."
,
我尝试将查询简化为:
var d = (from p in db.someTable where (p.SOME_COL== 3) select p).ToList();
得到了同样的错误...... 我没有改变表格结构中的任何内容
我可以从sql server management studio查询表,它可以正常工作,
顺便说一下 - 它是一张大桌子答案 0 :(得分:0)
好的,所以我发现了问题,如果有其他人遇到它,这就是它的原因:
这个表没有包含pk列,所以我手动将实体映射上的一些列定义为键(逻辑上这很好,因为它们确实充当键),问题是其中一列被添加到了table为空值,并且键不能为null,因此导致空引用异常。
我试图设置&#34;允许空值&#34;对于实体映射尚未提示,因为我提示密钥不能为空,所以我不得不在数据库中更改表逻辑本身,因此它将使用pk(表不断重建自身因此有点困难。 ..)。
无论如何,在将pk添加到表并将其重新映射到实体模型后,问题就解决了。 希望它对任何人都有帮助。