我在Linq中遇到一个使用Oracle填充的DataTable的强制转换错误。
bool isTrue = DataTable.AsEnumerable().Any
(x => x.Field<int>("MYNUMBERFIELD") == MYNUMBER);
在SQL中,这可以正常工作。在Oracle中失败并且在强制转换中出现了强制转换错误。在C#代码中,当您执行以下操作时会发生同样的事情:
int myint = (int)VariableRetrievedFromOracleDB;
如果您将其更改为int myint = Convert.ToInt32(VariableRetrievedFromOracleDB)
,则可以正常使用。
有关如何使用lambda处理此问题的任何想法吗?
答案 0 :(得分:2)
bool isTrue =
DataTable.AsEnumerable()
.Any(x => Convert.ToInt32(x.Field("MYNUMBERFIELD")) == MYNUMBER);