是否可以在 nHibernate 中设置一个属性而不是映射到表中的列,而该类的其他属性可以

Posted

技术标签:

【中文标题】是否可以在 nHibernate 中设置一个属性而不是映射到表中的列,而该类的其他属性可以【英文标题】:Is it possible in nHibernate to set a property NOT to map to a column in a table while other properties of the class does 【发布时间】:2012-01-29 14:17:21 【问题描述】:

我有一个类和所有属性,但一个映射到相应的表列。现在,当 nhibernate 创建类的新实例时,我想将剩下的一个属性设置为某个值。

例如。

    --only two columns

    CREATE TABLE [dbo].[Person](
        [key] [int] NOT NULL,
        [Name] [nvarchar](50) NULL) 
    --..........


    public class Entity
    
    public int key get;set;
    public string EntityType get;set;
    

    public class Person : Entity
    
    public string Name get;set; 
    


and i have maps
            Map(Person => Person.key).Not.Nullable();
            Map(Person => Person.Name).Not.Nullable();  
            // i don't want a map for EntityType 

这里我想要一个 Person 实例,EntityType 应该始终设置为自定义字符串“Person”。其他属性通常映射到 Person Table 的相应列。

这可能吗?

【问题讨论】:

从继承类的构造函数中设置EntityType属性怎么样?或者也许只是 public string EntityType get return this.GetType().Name; 【参考方案1】:

只需使用您想要的值初始化Person 构造函数中的EntityType 属性。 你不需要映射它。

public class Person : Entity

    public Person()
    
        EntityType = "Person";
    

【讨论】:

以上是关于是否可以在 nHibernate 中设置一个属性而不是映射到表中的列,而该类的其他属性可以的主要内容,如果未能解决你的问题,请参考以下文章

列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置?

是否可以在没有设置器的情况下在属性中设置值?

仅当实体尚不存在时,我是不是可以在 CloudFormation 中设置属性?

在python中从字典中设置属性

是否应该在带有或不带有 :hover 伪类的规则中设置游标属性?

如何在类定义中设置属性