我在Oracle.ManagedDataAccess.Client
提供程序中使用EF,并在查询数据库时遇到以下错误。
" ORA-00972:标识符太长"
经过网上的一些研究后,我发现这个错误是由于我超过了Oracle的30个字符别名限制。两年前报告了此错误,似乎错误在最新版本的提供程序中未得到修复。
不幸的是,数据库是第三方解决方案,无论如何我都无法修改数据库。
是否可以强制EF生成少于30个字符的别名?
在应用条件的情况下连接多个表时,似乎出现了我的问题。我也只选择/投射我需要的列,但EF会在连接中投射所有列,产生不必要的别名。
我希望这个......
SELECT
tbl1.key
FROM Table1 tbl1
INNER JOIN Table2 tbl2 on tbl1.key = tbl2.key
WHERE blah blah blah
但我得到了这个......
SELECT
tbl1.col1
FROM (SELECT tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4, tbl1.col5 from Table1 tbl1
INNER JOIN Table2 tbl2 on tbl1.key = tbl2.key WHERE blah blah blah)