【问题标题】:Unproxy property mapping nhibernate取消代理属性映射 nhibernate
【发布时间】:2017-01-04 12:53:11
【问题描述】:

你可以在没有代理的情况下放置一个属性吗?因为我需要得到它的价值。下面是映射:

  public class MateriaPrimaMap : ClassMap<MateriaPrima> {

    #region Construtor

    public MateriaPrimaMap() {
        Table("MATERIAPRIMA");           

        Id(m => m.Id).Column("MPR_CD");

        Map(m => m.Descricao)
        .Column("MPR_DS")
        .Not.Nullable().Length(30);

        Map(m => m.Ativo)
         .Column("MPR_ATIVO")
         .Not.Nullable();

        Version(m => m.Version).Column("MPR_DT_LK").Generated.Always();
    }

    #endregion
}}

图像代理属性:

【问题讨论】:

  • 您的意思是实例、id 还是内部属性?
  • id字段已经是值了,我希望“Descricao”字段有效,不用加入。

标签: c# nhibernate proxy nhibernate-mapping


【解决方案1】:

您可以使用 NHibernate 的映射,它可以让您映射另一个实体(与主实体相关)的属性,就好像它是它的一部分一样。 见这里:http://nhibernate.info/doc/nhibernate-reference/mapping.html#mapping-declaration-join

【讨论】:

    【解决方案2】:

    如果您有代理,则可以使用INHibernateProxy 引用here 获取标识符。

    如果您不处理代理,只需添加额外的属性并映射它们,请务必使用.Not.Insert().Not.Update() 以避免映射问题。

    Map(m => m.DescricaoId)
        .Column("MPR_DS")
        .Not.Insert().Not.Update();
    
    Map(m => m.AtivoId)
        .Column("MPR_ATIVO")
        .Not.Insert().Not.Update();
    

    【讨论】:

      猜你喜欢
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多