ExamVersion
类有一个名为int?
SourceSafeVersionNum
属性
当我执行以下代码时:
var query = from examVersion in db.ExamVersions
where examVersion.ExamVersionID == ExamVersionID
select examVersion;
foreach (ExamVersion examVer in query.ToList())
{
yield return examVer;
}
examVer.SourceSafeVersionNum
设置为1
,即使数据库中为NULL
。
当我在SQL Server中运行LINQ生成的SQL代码时,SourceSafeVersionNum
列值为NULL
(正如我所期望的那样),但在foreach循环中,examVer.SourceSafeVersionNum
为{ {1}}。
我无法在代码中找到分配默认值的任何地方或任何类似的逻辑。
任何想法为什么/将此值设置为1
?
这是属性声明(由.dbml文件生成)
1
答案 0 :(得分:2)
您是否尝试在属性的set{}
方法中设置断点,以查看可能填充其值的其他内容?您可能会在行为中找到罪魁祸首,然后查看调用堆栈,看看它是谁。
答案 1 :(得分:0)
作为后续行动,以下是发生的事情:
从数据库中检索值的代码被调用两次,但是通过两个不同的代码路径。分配值1的代码路径正由调试器转发,所以我没有看到它。