小编mju*_*516的帖子

在构建Linq-to-Sql代码时(模型优先),强制实体框架不生成NCLOB

我有一个具有可为null的int属性的类,出于过滤原因,我需要将其转换为字符串以进行一些比较。我已经安装了EF 6.1.2,因此使用.ToString()可以解决该问题。

queryableData = queryableData.Where(a => 
    a.PropName.HasValue && a.PropName.Value.ToString().Contains("8675309"));
Run Code Online (Sandbox Code Playgroud)

当检查正在执行的实际SQL时,该数字正被CAST转换为NCLOB类型,从而导致以下错误:

ORA-00932:数据类型不一致:预期的NCHAR-获得了NCLOB

根据我的阅读,这是因为在这种情况下,实体不知道潜在的最大大小,因此它默认为最大选项。我知道,使用字符串属性,我可以表示最大大小来提供帮助。在将该属性保留为int值以防止使用NCLOB的同时,我能做些什么?还是在防止此异常的同时使用它们的方法?

其他注意事项:

  • 我在Oracle系统上,因此SqlFunctions.StringConvert退出了。
  • 我使用的是Odp.net 12.x版(与此帖子相关)。
  • EF是一种“模型优先”的方法。
  • .Where()子句被添加到AsQueryable()中,因此我无法在内存中执行任何操作。

c# linq oracle entity-framework linq-to-sql

6
推荐指数
1
解决办法
2477
查看次数

在Netbeans 8.1(PHP)中调试时无法评估表达式

我正在NetBeans 8.1中为我的PHP文件使用XDebug工具。调试时,“调试>评估表达式”选项被禁用。有谁知道如何启用此功能?

我已经进入“工具>选项> PHP>调试”,并选中了“监视和气球评估”。

php debugging netbeans xdebug

5
推荐指数
1
解决办法
856
查看次数

标签 统计

c# ×1

debugging ×1

entity-framework ×1

linq ×1

linq-to-sql ×1

netbeans ×1

oracle ×1

php ×1

xdebug ×1