C# 使用NHibernate映射时超高覆盖类

C# 使用NHibernate映射时超高覆盖类,c#,visual-studio,nhibernate,mapping,firebird,C#,Visual Studio,Nhibernate,Mapping,Firebird,我有一个类“MyClass”与NHibernate的映射,但在我的数据库表中,名称是大写(“MyClass”)。我正在尝试进行一个集成测试,当执行测试时,我得到了sql错误(“动态sql错误”),我检查了这个问题,并且我的查询在表名处带有双引号 public class MyClass { public virtual int ID { get; set; } public virtual int NAME { get; set; } } 如何更改NHib

我有一个类“MyClass”与NHibernate的映射,但在我的数据库表中,名称是大写(“MyClass”)。我正在尝试进行一个集成测试,当执行测试时,我得到了sql错误(“动态sql错误”),我检查了这个问题,并且我的查询在表名处带有双引号

public class MyClass 
{
        public virtual int ID { get; set; }
        public virtual int NAME { get;  set; } 
}

如何更改NHibernate以便在表名查询中不使用双引号?

我找到了一个解决方案,在映射中只需添加一个属性表(“TableName”)

公共类MapMyClass():类映射
{
公共MapMyClass{
表格(“MYTABLE”);
Id(c=>c.Id);
Map(c=>c.NAME);
}
}

查看内部异常并将消息粘贴到此处!动态SQL错误SQL错误代码=-204第1行第178列的表未知平衡,这是内部执行选项,因为我的数据库中不存在“平衡”,如果我尝试在数据库中执行此查询而不使用双引号,它将运行。例如:从“Balancas”->选择*不运行,因为名称是大写的。从Balancas中选择*->运行它!您现在使用的映射策略是什么?按代码映射?是的,我按代码映射。公共类MapBalancas:ClassMap{public MapBalancas(){Id(c=>c.CODI_-BAL);Map(c=>c.CODI_-EMP);Map(c=>c.DESC_-BAL);Map(c=>c.SITU_-BAL);Map(c=>c.DUMANUT);}这就是我要回答的。。。这就是为什么我问你目前使用的映射策略
public class MapMyClass() : ClassMap<MyClass>
{
    public MapMyClass{
       Table("MYTABLE");
       Id(c => c.ID);
       Map(c => c.NAME);
    }
}