的ExamVersion
類有一個int?
屬性命名SourceSafeVersionNum
爲什麼這個LINQ查詢從數據庫中爲NULL賦值1?
當我執行下面的代碼:
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文件生成)
[Column(Storage="_SourceSafeVersionNum", DbType="Int", UpdateCheck=UpdateCheck.Never)]
public System.Nullable<int> SourceSafeVersionNum
{
get
{
return this._SourceSafeVersionNum;
}
set
{
if ((this._SourceSafeVersionNum != value))
{
this.OnSourceSafeVersionNumChanging(value);
this.SendPropertyChanging();
this._SourceSafeVersionNum = value;
this.SendPropertyChanged("SourceSafeVersionNum");
this.OnSourceSafeVersionNumChanged();
}
}
}
你可以發佈'SourceSafeVersionNum'的聲明(以及它之前的屬性)嗎? – Gabe 2011-03-30 15:34:14
出於興趣,你爲什麼*急於*強迫結果進入列表,然後使用收益率?任何不僅僅是返回列表的原因,還是使用返回'list.Select(x => x)'來避免客戶端能夠修改列表? – 2011-03-30 15:44:03
我問自己同樣的問題。只是昨天繼承了這個代碼。 – Jason 2011-03-30 15:50:39