2

我试过这样做。

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

但我有:

ORA-00942: 表或视图不存在

我试图建立 HasManyToMany 连接不是通过 ID,而是通过其他一些属性。

首先,我收到了 - 消息太长了。当我尝试输入自己的表名作为别名时,它无法识别。我该怎么办?

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 回答