queryableData = queryableData.Where(a => a.Propname.HasValue && a.Propname.Value.ToString().Contains("8675309"));
在检查正在执行的实际sql时,该数字正在被CAST转换为NCLOB类型,这会导致以下错误:
ORA-00932: inconsistent datatypes: expected NCHAR – got NCLOB
从我读过的内容来看,这是因为实体在这种情况下不知道潜在的最大大小,所以它默认为最大的选项.我知道有一个字符串属性,我可以表示最大大小来帮助.在将属性保持为int以防止NCLOB被使用时,我能做些什么吗?或者在防止此异常时使用它们的方法?
其他一些说明:
>我在Oracle系统上,所以sqlFunctions.StringConvert已经出局了.
>我在Odp.net版本12.x(与this post相关).
> EF是一种模型优先方法.
> .Where()子句被添加到Asqueryable()中,因此我无法在内存中执行任何 *** 作.
这内部linq代码(属性“ID”是整数):
Material.ID.ToString()
生成此sql 总结
以上是内存溢出为你收集整理的c# – 在构建Linq-to-Sql代码时强制实体框架不生成NCLOB(模型优先)全部内容,希望文章能够帮你解决c# – 在构建Linq-to-Sql代码时强制实体框架不生成NCLOB(模型优先)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)