2

私はそれをやろうとしました。

HasManyToMany<YechidotDoarInGroup>(x => x.Col_yig) 
  .Table("PigToYig") 
  .ChildKeyColumn("YIG_GROUP_RECID") 
 .ParentKeyColumn("PIG_GROUP_RECID"); 

しかし、私は持っています:

ORA-00942: 表またはビューが存在しません

ID ではなく、他のプロパティによって HasManyToMany 接続を確立しようとしています。

まず、メッセージが長すぎます。独自のテーブル名をエイリアスとして入力しようとすると、認識されません。私は何をすべきか?

4

3 に答える 3

2

問題はこれかもしれません:

.Table("PigToYig") 

デフォルトでは、Oracle オブジェクト名は大文字です。ただし、Oracle は特定の場合に二重引用符で囲まれた名前を適用します。つまり、テーブルにデフォルトの名前が付いている場合は、代わりにこれを渡す必要があるかもしれません...

.Table("PIGTOYIG") 

それは、NHibernate がこれらの変数を SQL に変換する方法に依存します (NHibernate には詳しくありません)。

于 2010-01-24T16:37:25.200 に答える
1

原因: 入力された表またはビューが存在しないか、ここで許可されていないシノニムが使用されたか、表が必要な場所でビューが参照されました。既存のユーザー テーブルとビューは、データ ディクショナリをクエリすることで一覧表示できます。テーブルにアクセスするには、特定の権限が必要になる場合があります。アプリケーションがこのメッセージを返した場合、アプリケーションがアクセスしようとしたテーブルがデータベースに存在しないか、アプリケーションがそのテーブルにアクセスできません。

処置:
次の各項目を確認してください。

 * the spelling of the table or view name.
 * that a view is not specified where a table is required.
 * that an existing table or view name exists.

ソース ora-code.com

于 2010-01-24T15:50:24.620 に答える
1

すべてのマッピング宣言の前に Table() メソッドを定義します。

public EmployeeMap : ClassMap<Employee>
{
    public EmployeeMap()
    {
        Table("EMPLOYEE");
        // your declaration
        Id(x => x.IdEmployee);        
    }
}
于 2010-02-25T08:58:35.587 に答える