取數據庫中的數據時,數據庫中的字段有可能是空值,雖然Linq中的Field方法和SetField方法都可以處理可以為 null 的類型,不必像前面的示例那樣檢查 Null 值,我們再用Field將一些可空的值賦給實體的屬性時,有可能會報錯,因為實體的屬性是可空類型,例如:
角色(SmRole)實體有如下可空類型的創建時間的屬性
public virtual DateTime? Createdtime
{
get { return _createdtime; }
set { _bIsChanged |= (_createdtime != value); _createdtime = value; }
}
//dsRole為數據集
var roleAllDs =
from role in dsRole.Tables[0].AsEnumerable()
select role;
//創建SmRole實體對象
SmRole smrole = new SmRole();
//遍歷數據
foreach (var r in roleAllDs)//dsRole.Tables[0].Rows
{
//...
//smrole.Createdtime = r.Field<DateTime>("CREATEDTIME");
//如上這樣取值就會報標題所示的異常,應該改為可空類型,正確的如下
smrole.Createdtime = r.Field<DateTime?>("CREATEDTIME");//加上可空標識
//...
}
https://www.cnblogs.com/vihone/archive/2010/06/04/1751424.html