這真讓我困惑。這裏是我的模型的一個片段:使用LINQtoSQL超出範圍日期時間問題
* SQL Server *
Event
-----
Id (int, PK) NOT NULL
Title (varchar(100)) NULL
LastModified (datetime) NULL
EventDates
----------
Id (int, PK) NOT NULL
StartDate (datetime) NULL
EndDate (datetime) NULL
* C# *
Event
-----
public int Id
public string Title
public DateTime LastModified
EventDates
----------
public int Id
public DateTime StartDate
public Datetime EndDate
的LastModified
領域一直處於自其創建數據庫。我一直保存它的值當我保存的事件,但我想在一個表中顯示它,所以我改變了我的事件庫的GetEvents
的返回值:
return (from e in GetDbEvents()
select new Event
{
// Miscellaneous fields..
LastModified = e.LastModified.GetValueOrDefault() // Shiny new code
});
現在當我打電話,我得到在大叫:
The conversion of a char data type to a datetime data type
resulted in an out-of-range datetime value.
如果我剝離下來,上面的代碼這一點,但它仍然沒有幫助,我也得到了同樣的錯誤,如果我試圖枚舉結果:
var test = (from e in _db.Events
select e.LastModified.GetValueOrDefault());
作爲測試,我做同樣的語句我EventDates
表(再次,與2 datetime列):
var test4 = (from ed in _db.EventDates
select new EventDate
{
StartDate = ed.StartDate.GetValueOrDefault(),
EndDate = ed.EndDate.GetValueOrDefault()
});
這工作得很好,當然。列舉時沒有錯誤,所有的值都是正確的。
我應該指出Events
表中的一些LastModified
值是NULL
,而EventDates
中的所有值都填充了數據。
我錯過了一些基本的東西嗎?提前致謝!
編輯 我的主要問題是爲什麼Events
給我超出範圍的問題,EventDates
沒有,即使模型頗爲相似?
什麼是最小值和最大值(即MIN()和MAX())值的每個表格列中你正在檢查? – 2010-05-06 14:40:02