Ich habe seltsames Verhalten in einigem C# Code, der eine LINQ-Abfrage verwendet, einige Daten in einer einfachen Datensatz Tabelle zuzugreifen:LINQ DataRowExtensions.Field <int> muss <decimal> sein?
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"));
Wenn ich FirstOrDefault().Field<int>
schreibe ich eine InvalidCastException zur Laufzeit erhalten,
Aus irgendeinem Grunde es muss decimal
sein.
"SERVICE" ist ein numeric
Typ in einer SQL-Datenbank T
Warum denkst du ist es seltsam? Der Typ "T", den Sie an die Methode "Field()' übergeben, muss mit dem Datentyp ['DataColumn.DataType'] (https://msdn.microsoft.com/en-us/library/system.data.datacolumn.datatype (v = vs.110) .aspx) Eigenschaft –