我正在使用 TypeORM 连接到已创建的表。 需要注意的是,它与我公司的大多数表格一样,名称中都有一个点:dbo.Application
我的实体文件:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'
@Entity({name: 'Application'}) // fixed
export class Application {
@PrimaryGeneratedColumn()
ApplicationID: number;
@Column()
ApplicationName: string;
@Column()
LastUpdate: number;
}
编辑 好的,我看到这个问题了。 如果没有 {name: 'Application'} 它会尝试创建表 'application',而不是 'Application'
但是,我有一个新错误,我无法弄清楚。 TypeORM 正在尝试删除类型为 varchar(100) 的 ApplicationName 列。 做它和字符串不跳吗?
根据记录,数据库列是:
ApplicationID(PK, int, not null)
应用程序名称(varchar(100),null)
最后更新(日期时间,空)
再次编辑: 在连接中设置“synchronize: false”可防止删除该列。仍然好奇为什么它之前尝试过,但这是宜居的。
为了创建名称中包含不寻常字符的对象,请将名称括在方括号中,如下所示:
[My-Table!]
。但是,在您的情况下,您可能不想这样做,因为 dbo
不是表名称的一部分,而是模式的名称,正如 @sean-lange 正确指出的那样。