最大長30の同名の列を持つ2つの表があります。 linqでこれらの2つの表の結合を問い合せると、実際に生成されたSQL(非常に巨大)は、それらを区別するために "AS"キーワードを使用して、{long_column_name} 1と{long_column_name} 2を呼び出します。Oracle用のEntity Framwork 4.1を使用する場合、長い列名でエラーが発生する
この場合、エイリアス名は実際には31の長さになり、ORA-00972エラーが発生します。識別子が別名には長すぎます!
これは明らかにSQL生成プロセスのバグです。
誰にも回避策がありますか? 私は列の名前を変更できないので、私は今これらの列なしで2つのビューを作成することですが、これは理想的な解決策ではありません。
問題のあるクエリを生成しているlinqステートメントの例を投稿できますか?私が思っているのは、長いカラム名がselect、join句などにある場合です。 –
これはMSからのものなら面白いです。 colnameのsubstrを実行する必要があります。 num。 – tbone
は、オラクルのodp.netとエンティティフレームワークのサポートを試しましたか?私はそうではありませんが、こちらをご覧ください:http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html – tbone