我有一個使用LINQ查詢來訪問一個簡單的數據集表中的一些數據的一些C#代碼奇怪的行爲:LINQ DataRowExtensions.Field <int>必須是<decimal>?
var rowConfig = from row in dsConfig.Tables[0].AsEnumerable()
where row.Field<string>("SERVICE").ToUpper().Contains(trackedServType)
select row;
seqMin = Convert.ToInt32(rowConfig.FirstOrDefault().Field<decimal>("ROYAL_MAIL_SEQ_MIN"));
如果我寫FirstOrDefault().Field<int>
我在運行時獲取一個InvalidCastException,
出於某種原因它必須是decimal
。
「服務」 是在爲T SQL數據庫
你爲什麼覺得這很奇怪?您傳遞給'Field()'方法的類型'T'必須匹配['DataColumn.DataType'](https://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.datatype( v = vs.110).aspx)屬性 –