c# – 在构建Linq-to-Sql代码时强制实体框架不生成NCLOB(模型优
发布时间:2020-12-15 22:45:54 所属栏目:百科 来源:网络整理
导读:我有一个具有可空int属性的类,为了过滤原因,我需要转换为字符串来进行一些比较.我安装了EF 6.1.2,因此使用.ToString()将适用于此. queryableData = queryableData.Where(a = a.PropName.HasValue a.PropName.Value.ToString().Contains("8675309")); 在检查
我有一个具有可空int属性的类,为了过滤原因,我需要转换为字符串来进行一些比较.我安装了EF 6.1.2,因此使用.ToString()将适用于此.
queryableData = queryableData.Where(a => a.PropName.HasValue && a.PropName.Value.ToString().Contains("8675309")); 在检查正在执行的实际SQL时,该数字正在被CAST转换为NCLOB类型,这会导致以下错误:
从我读过的内容来看,这是因为实体在这种情况下不知道潜在的最大大小,所以它默认为最大的选项.我知道有一个字符串属性,我可以表示最大大小来帮助.在将属性保持为int以防止NCLOB被使用时,我能做些什么吗?或者在防止此异常时使用它们的方法? 其他一些说明: >我在Oracle系统上,所以SqlFunctions.StringConvert已经出局了. 解决方法
我在Oracle(Oracle 11.2.02和Oracle.ManagedDataAccess.12.2.1100)和实体框架(EntityFramework.6.1.3)中遇到了同样的问题.
这内部Linq代码(属性“Id”是整数): Material.Id.ToString() 生成此SQL (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |