Fluent Nhibernate Oracle 标识符太长 - 别名问题

发布于 2024-08-19 04:42:42 字数 378 浏览 5 评论 0原文

我已经尝试这样做了。

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

但我有:

ORA-00942: 表或视图不存在

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

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

I've tried to do that.

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

but I've got:

ORA-00942: table or view does not exist

I am trying to establish HasManyToMany connection not by ID , but by
some other property .

First I've got - too long message. When I've tried to enter my own Table name as an alias , it's not recognized. What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

樱花落人离去 2024-08-26 04:42:42

问题很可能是这样的:

.Table("PigToYig") 

默认情况下,Oracle 对象名称是大写的。但是,Oracle 在给定情况下将名称应用双引号。换句话说,如果你的表有默认命名,你可能需要传入这个......

.Table("PIGTOYIG") 

这取决于NHibernate如何将这些变量转换为SQL(我对NHibernate不熟悉)。

The problem may well be this:

.Table("PigToYig") 

Oracle object names are, by default, in UPPER case. However, Oracle applies names in double-quotes in the given case. In other words, if your table has the default naming you may need to pass in this instead ...

.Table("PIGTOYIG") 

It depends how NHibernate converts those variables into SQL (I'm not familiar with NHibernate).

对你的占有欲 2024-08-26 04:42:42

在所有映射声明之前定义 Table() 方法。

public EmployeeMap : ClassMap<Employee>
{
    public EmployeeMap()
    {
        Table("EMPLOYEE");
        // your declaration
        Id(x => x.IdEmployee);        
    }
}

Define Table() method before all of your mapping declaration.

public EmployeeMap : ClassMap<Employee>
{
    public EmployeeMap()
    {
        Table("EMPLOYEE");
        // your declaration
        Id(x => x.IdEmployee);        
    }
}
牵你手 2024-08-26 04:42:42

原因:输入的表或视图不正确
不存在,不存在的同义词
使用了此处允许的视图,或者使用了视图
需要表格时引用。
现有的用户表和视图可以
通过查询数据列出
字典。某些特权可能是
需要访问该表。如果一个
应用程序返回此消息,
应用程序尝试访问的表
数据库中不存在,或者
应用程序无权访问
它。

行动:
检查以下各项:

 * 表或视图名称的拼写。
 * 在需要表的地方未指定视图。
 * 现有表或视图名称存在。

源 ora-code.com

Cause: The table or view entered does
not exist, a synonym that is not
allowed here was used, or a view was
referenced where a table is required.
Existing user tables and views can be
listed by querying the data
dictionary. Certain privileges may be
required to access the table. If an
application returned this message, the
table the application tried to access
does not exist in the database, or the
application does not have access to
it.

Action:
Check each of the following:

 * 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.

source ora-code.com

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文